我有这张图片:
类似于矩形但不完全是。我想找到矩形轮廓,我尝试使用 edge 和 hough 但它没有找到连续的线。我也尝试过erode 和dilate 但它无法消除例如水平最上面线上一个像素的差异,所以它仍然找不到连续的线。
问题的第二部分是将其拉直。
我得到的另一个想法是找到角 用直线将它们连接起来,但它也不起作用。
我确信它不应该很复杂,但我做不到。
欢迎任何想法! 干杯
最佳答案
您可以使用 regionprops()
在二值图像中找到连续区域的边界框:
img = imread('rect.jpg');
bw = im2bw(img);
% find both black and white regions
stats = [regionprops(bw); regionprops(not(bw))]
% show the image and draw the detected rectangles on it
imshow(bw);
hold on;
for i = 1:numel(stats)
rectangle('Position', stats(i).BoundingBox, ...
'Linewidth', 3, 'EdgeColor', 'r', 'LineStyle', '--');
end
结果:
关于image - Matlab:找到轮廓并拉直近乎矩形的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251045/