实验结果需要一定的后处理,求凸包。matlab以专门的函数,查了半天也只能做到先用了,各个参数还不是很明白,先做记录。我是对一幅二值图像做凸包的,二值图如下:
然后用代码求出其凸包及最小外接矩形,代码如下(注意:代码可直接使用,但具体怎么调用的我还不太明白,纯当记录使用,参考了csdn一位博主的代码,他的代码里I和bw用混了)。
figure;
imshow(pure);
stats = regionprops(bwlabel(pure), 'ConvexHull');
tn = stats.ConvexHull;
hold on;
h = patch(tn(:, 1), tn(:, 2), 'r');
set(h, 'FaceColor', 'none', 'EdgeColor', 'r', 'Marker', '.');
figure;
imshow(pure);
stats = regionprops(bwlabel(pure), 'BoundingBox');
tn = stats.BoundingBox;
hold on;
h = rectangle('Position', tn, 'EdgeColor', 'r');
最终的实验效果如下: