搜档网
当前位置:搜档网 › Matlab关于二值图像的最小外接矩形问题

Matlab关于二值图像的最小外接矩形问题

由于纸币新旧不一,四角可能会有磨损,所以通过得到四角坐标的方式截取纸币图案会损失一定细节。
先用外接矩形找到坐标,得到倾斜角度并旋转,再找一次外接矩形得到坐标。。。然后裁剪。于二值化图像如何实现倾斜最小外接矩形
url='https://www.sodocs.net/doc/1a18429652.html,/attachments/month_0905/20090510_ddce069b5d33d97300e19oalKuZDHKrX.jpg';
I=imread(url);
bw=im2bw(I);
[r c]=find(bw==1);
[rectx,recty,area,perimeter] = minboundrect(c,r,'a'); % 'a'是按面积算的最小矩形,如果按边长用'p'
imshow(bw);hold on
line(rectx,recty);
[rectx,recty,area,perimeter] = minboundrect(c,r,'a');
Matlab关于二值图像的最小外接矩形问题。
当物体的边界已知时,用其外接矩形的尺寸来刻画它的长宽是最简单的方法。对任意朝向的物体, 水平和垂直并非是我们感兴趣的方向。这时,就有必要确定物体的主轴, 然后计算反映物体形状特征的主轴方向上的长度和与之垂直方向上的宽度,这样的外接矩形是物体的最小外接矩形(Minimum Enclosing Rectangle, MER)。

计算MER的一种方法是,将物体的边界以每次3°左右的增量在90°范围内旋转。每旋转一次记录一次其坐标系方向上的外接矩形边界点的最大和最小x、y值。旋转到某一个角度后,外接矩形的面积达到最小。取面积最小的外接矩形的参数为主轴意义下的长度和宽度。

rectx,recty分别是矩形的几个顶点的x,y坐标,从这里就可以求出长和宽了

相关主题