这个示例展示了如何为图像集合创建数据存储,读取图像文件,并查找具有最大平均色调、饱和度和亮度(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;数据= 0;dataV = 0;
对于集合中的每个图像,读取图像文件并计算所有图像像素的平均HSV值。如果平均值大于前一幅图像的平均值,则将其记录为新的最大值(maxAvgH
,maxAvgS
,或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 =卑鄙(h(:));%找到整个图像的平均HSV值avg =意味着(s (:));avgV =意味着(v (:));如果avgH > maxAvgH%检查新的最大平均色调maxAvgH = avgH;dataH =数据;结束如果avg > maxAvgS检查新的最大平均饱和度maxAvgS = avg;数据=数据;结束如果avgV > maxAvgV%检查新的最大平均亮度maxAvgV = avgV;dataV =数据;结束结束结束
查看图像最大的平均色调,饱和度和亮度。
imshow (dataH“InitialMagnification”,“健康”);标题(最大平均色调的)
图imshow(数据,“InitialMagnification”,“健康”);标题(“最大平均饱和度”);
图imshow (dataV,“InitialMagnification”,“健康”);标题(最大平均亮度的);