使用for循环进行图像处理(matlab)

时间:2013-12-24 01:05:00

标签: matlab image-processing

我是Matlab的新手。我想比较两个苹果之间几个斑点的红色。

这是我正在使用的代码:

imgApple = imread('apples.tif');
figure(1), imshow(imgApple);
imgROI = imrect;

imgMask = createMask(imgROI);
imgBound = bwboundaries(imgMask);
imgXY = imgBound{1};
imgX = imgXY(:,2);
imgY = imgXY(:,1);

imgTopLine = min(imgX);
imgBotLine = max(imgX);
imgLeftCol = min(imgY);
imgRightCol = max(imgY);
imgWitdh = imgBotLine - imgTopLine + 1;
imgHeight = imgRightCol - imgLeftCol + 1;
imgCrop = imcrop(imgApple, [imgTopLine, imgLeftCol, imgWidth, imgHeight]);

redIndex = mean(mean(imgCrop(:,:,1)));
imgExcel = xlsappend('file.xls', redIndex, 'Sheet1');

我遇到的问题是,如果我这样写,我将需要多次评估createMask,具体取决于我正在查看的点数(在转换投资回报率之后)。我尝试了for循环,但无法创建几个我可以合并使用的掩码:

newMask = imgMask;
index = (imgMask2 ~= 0);
newMask(index) = imgMask2(index);

来自How do I merge two masks together in MATLAB?

我想知道是否有任何方法可以使用for循环自动化整个过程。任何帮助都表示赞赏,如果我没有明确解释,我总能澄清任何疑问。

提前致谢!

0 个答案:

没有答案