此示例显示如何为图像集合创建数据存储,读取图像文件,并找到具有最大平均色调,饱和度和亮度(HSV)的图像。在使用图像处理的类似示例Mapreduce.
功能,参见使用MapReduce计算图像的最大平均HSV。
识别两个MATLAB®目录并创建包含图像的数据存储.jpg.
那.tif.
, 和.png.
这些目录中的扩展。
location1 = fullfile(matlabroot,'工具箱'那'matlab'那'演示');位置2 = fullfile(matlabroot,'工具箱'那'matlab'那'imagesci');DS = ImageageTastore({location1,location2},'fileextensions',{'.jpg'那'.tif'那'.png'});
初始化最大平均HSV值和相应的图像数据。
maxavgh = 0;maxavgs = 0;maxavgv = 0;datah = 0;数据= 0;datav = 0;
对于集合中的每个图像,读取图像文件并计算所有图像像素的平均HSV值。如果平均值大于上一个图像的值,则将其记录为新的最大值(maxavgh.
那maxavs.
, 或者maxavgv.
)并记录相应的图像数据(datah.
那数据
, 或者Datav.
)。
为了i = 1:长度(ds.files)data = ReadImage(DS,i);%读取了iTh图像如果〜ISMatrix(数据)%仅处理三维颜色数据HSV = RGB2HSV(数据);%从RGB数据计算HSV值H = HSV(:,:1);%提取HSV值s = HSV(:,:,2);v = HSV(::,3);avgh =卑鄙(h(:));%找到图像上的平均HSV值avgs =均值(s(:));avgv =均值(v(:));如果avgh> maxavgh.%检查最大的最大平均色调maxavgh = avgh;datah =数据;结尾如果avgs> maxavgs.%检查最高的最大平均饱和度maxavgs = avgs;数据=数据;结尾如果avgv> maxavgv.%检查最大的最大平均亮度maxavgv = avgv;datav =数据;结尾结尾结尾
查看具有最大色调,饱和度和亮度的图像。
imshow(datah,'InitialMagnification'那'合身');标题('最大平均色调')
图imshow(数据,'InitialMagnification'那'合身');标题('最高平均饱和度');
图imshow(datav,'InitialMagnification'那'合身');标题('最大平均亮度');
imageageAtastore.
|Mapreduce.
|高