0

我正在使用 Matlab 程序。

如何从黑白图像中删除直线?

示例图像如下:

在此处输入图像描述

4

1 回答 1

0

我已经拿到结果了

这是我的代码。

RGBImg = imread('test.png');
    grayImg = rgb2gray(RGBImg);
Img = im2bw(grayImg);

Img = ~Img;
bwImgs = bwareaopen(Img,70);

se90 = strel('line', 2, 90);
se0 = strel('line', 2, 0);
borderImgs = double(imdilate(bwImgs, [se90 se0]));
%figure; imshow(borderImgs);

%remove border
%***************************************************************
[row col dim] = size(RGBImg);
rmBorderImgs = RGBImg;


for r=1:row
    for c=1:col
        if borderImgs(r,c) == 1
            rmBorderImgs(r,c,1) = 255;
            rmBorderImgs(r,c,2) = 255;
            rmBorderImgs(r,c,3) = 255;
        end
    end
end

这是结果图像;

在此处输入图像描述

你对此有更好的想法吗?

你能建议我吗?

于 2013-03-04T14:46:46.123 回答