以字符'B','M'或数字'1','2'作为图像。
我必须找出这个字符或数字的长宽比。
我没有得到正确的值,这是我的代码:如何查找图像的宽高比
E = imread('1.jpg');
level = graythresh(E);
BW = im2bw(E,level);
[m,n]=size(BW);
AR=m/n
以字符'B','M'或数字'1','2'作为图像。
我必须找出这个字符或数字的长宽比。
我没有得到正确的值,这是我的代码:如何查找图像的宽高比
E = imread('1.jpg');
level = graythresh(E);
BW = im2bw(E,level);
[m,n]=size(BW);
AR=m/n
你需要采取的字符的边界框的纵横比
s = regionprops(BW, 'BoundingBox');
AR = s.BoundingBox(4)/s.BoundingBox(3);
见doc的regionprops
为'BoundingBox'
中的值。
我得到错误“在调用regionprops之前,使用bwlabel(BW)或double(BW)将二进制图像转换为 标签矩阵。”之后我使用L = bwlabel(BW); s = regionprops(L,'BoundingBox');然后我得到错误行AR = s.BoundingBox(4)/ s.BoundingBox(3) – aryan
@aryan你得到一个错误,可能是因为你有'BW'多个连接组件。使用与我在上一个问题的答案中使用的相同的循环。或者,使用'double(BW)'确保将所有'1'像素作为同一个对象(在您的示例中,这看起来像首选方法)。 – Shai
我使用** double(BW)**,我得到了结果。非常感谢你.. – aryan
相关(不复制)问题:[统计图像中前景和背景像素数量](http://stackoverflow.com/questions/16055949/count-the-number-of-foreground-and-background-像素在图像中) – Shai