消除图像中字符的噪音

时间:2017-02-08 15:46:01

标签: image matlab image-processing noise-reduction

我处理了输入图像,结果如下。我只需要角色。我尝试了但无法消除角色周围的噪音。

mu.jpg

1 个答案:

答案 0 :(得分:4)

使用较小的结构元素(如3 x 3正方形)进行简单的侵蚀可能会消除小的白噪声,从而使字符更暗。您还可以利用黑色非字符区域连接到图像边界的事实。您可以通过删除连接到边界的区域从图像中删除它们。

因此,首先使用imerode执行侵蚀,然后您需要使用imclearborder删除边界,但这需要触摸边框的像素为白色。因此,使用imerode的输出的反函数进入函数,然后再反转它。

这样的东西会起作用,我会直接从Stack Overflow读取您的图像:

% Read the image and threshold in case
im = imread('https://i.stack.imgur.com/Hl6Y9.jpg');
im = im > 200;

% Erode
out = imerode(im, strel('square', 3));

% Remove the border and find inverse
out = ~imclearborder(~out);

我们现在收到这张图片:

enter image description here

B附近有一些你可能不想要的孤立黑洞。您可以使用bwareaopen删除某个区域以下的岛屿,从而进行一些额外的后处理。我从实验中选择了50像素。您必须在imclearborder

的输出的反函数上执行此操作
% Read the image and threshold in case
im = imread('https://i.stack.imgur.com/Hl6Y9.jpg');
im = im > 200;

% Erode
out = imerode(im, strel('square', 3));

% Remove the border
bor = imclearborder(~out);

% Remove small areas and inverse
out = ~bwareaopen(bor, 50);

我们现在得到这个:

enter image description here