繁体   English   中英

如何使用Matlab查找图像中矩形的长度和宽度

[英]How to find the length and breadth of a rectangle in an image using matlab

我有下面根据我记录的值生成的图像。 我已将值转换为缩放图像,然后将其调整为36 x 52图像。

在此处输入图片说明

此图显示了我使用的值的升级版本。 我需要做的是计算填充有绿色的形状的长度和宽度。 下图显示了我想要的。

在此处输入图片说明

我已将图像转换为二进制图像,然后尝试使用regionprops使用以下代码来计算长度和宽度。

     B = im2bw(A);
     B1 = double(A);
     Props = regionprops(B1,'MajorAxisLength','MinorAxisLength');

我没有获得突出显示区域的尺寸,而是获得了所有二进制值为1的区域。

在此处输入图片说明

我已经获得了绿色区域以及黄色/橙色区域的长度和宽度。 如果将rgb转换为二进制图像,则得到以下图像,而我想要的只是中心矩形的尺寸。

在此处输入图片说明

我获得的尺寸包括侧面的其他两个白色区域。 我应该消除它们,或者只计算矩形的尺寸。如何继续查找矩形的面积。 还是有其他方法可以做到? 提前致谢!!!

我猜您的图片A的大小为36x52x3,其中3表示红色,绿色和蓝色。 因此,如果您更换

B = im2bw(A);

使用以下代码:

a = double(A); % in case it is integer type
a = a(:,:,2) - a(:,:,1) - a(:,:,3); % try to find green only
B = im2bw(a); % you may need to set level based on image data type

你应该得到你想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM