image - Matlab:找到轮廓并拉直近乎矩形的图像

标签 image matlab image-processing

我有这张图片:

rectangle

类似于矩形但不完全是。我想找到矩形轮廓,我尝试使用 edgehough 但它没有找到连续的线。我也尝试过erodedilate 但它无法消除例如水平最上面线上一个像素的差异,所以它仍然找不到连续的线。

问题的第二部分是将其拉直。

我得到的另一个想法是找到 用直线将它们连接起来,但它也不起作用。

我确信它不应该很复杂,但我做不到。

欢迎任何想法! 干杯

最佳答案

您可以使用 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 with rects drawn on it

关于image - Matlab:找到轮廓并拉直近乎矩形的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251045/

相关文章:

python - python 中的waveplay 等效命令

matlab - 获取BW或RGB图片中不规则物体的长度,并将其绘制到图片中以进行控制

android - 在 Android 中从内存中保存和读取位图/图像

python - 填充轮廓 OpenCV 的外部

matlab - 在 Matlab 中转发输入名称?

image-processing - 关于使用卷积自定义高斯模糊的问题

matlab - 为什么输入图像的类别最好为 double ?

android - ExifInterface 返回图像方向 0

python - PIL 保存时改变像素值

image - 光流的简单案例