主要内容

读取和分析图像文件

这个例子展示了如何为一组图像创建一个数据存储,读取图像文件,并找到具有最大平均色相、饱和度和亮度(HSV)的图像。的图像处理类似示例mapreduce功能,请参阅用MapReduce计算图像的最大平均HSV

识别两个MATLAB®目录并创建包含图像的数据存储jpg.tif,. png这些目录中的扩展。

Location1 = fullfile(matlabroot,“工具箱”matlab的“演示”);Location2 = fullfile(matlabroot,“工具箱”matlab的“imagesci”);ds = imageDatastore({location1,location2},“FileExtensions”, {“jpg”“.tif”“使用”});

初始化最大平均HSV值和相应的图像数据。

maxAvgH = 0;maxAvgS = 0;maxAvgV = 0;dataH = 0;dataS = 0;dataV = 0;

对于集合中的每个图像,读取图像文件并计算所有图像像素的平均HSV值。如果一个平均值比前一个图像的平均值大,则将其记录为新的最大值(maxAvgHmaxAvgS,或maxAvgV),并记录相应的图像数据(dataH数据,或dataV).

i = 1:length(ds. files) data = readimage(ds,i);读取第i个图像如果~ ismatrix(数据)仅处理三维颜色数据HSV = rgb2hsv(数据);从RGB数据计算HSV值H = hsv(:,:,1);提取HSV值S = hsv(:,:,2);V = hsv(:,:,3);avgH = mean(h(:));找到整个图像的平均HSV值avgS = mean(s(:));avgV = mean(v(:));如果avgH > maxAvgH检查新的最大平均色相maxAvgH = avgH;dataH =数据;结束如果avgS > maxAvgS检查新的最大平均饱和度maxAvgS = avgS;dataS =数据;结束如果avgV > maxAvgV检查新的最大平均亮度maxAvgV = avgV;dataV =数据;结束结束结束

查看具有最大平均色相、饱和度和亮度的图像。

imshow (dataH“InitialMagnification”“健康”);标题(“最大平均色相”

图中包含一个轴对象。标题为Maximum Average Hue的axes对象包含一个image类型的对象。

图imshow(数据,“InitialMagnification”“健康”);标题(“最大平均饱和度”);

图中包含一个轴对象。标题为Maximum Average Saturation的axis对象包含一个image类型的对象。

图imshow (dataV,“InitialMagnification”“健康”);标题(“最大平均亮度”);

图中包含一个轴对象。标题为Maximum Average Brightness的axis对象包含一个image类型的对象。

另请参阅

||

相关的话题