我处理了输入图像,结果如下。我只需要角色。我尝试了但无法消除角色周围的噪音。
答案 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);
我们现在收到这张图片:
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);
我们现在得到这个: