我假设您已经安装了图像处理工具箱。您上载的示例图像是RGB,因此必须进行一些预处理。首先,读取图像,然后将图像转换为二进制。
对于我提议的工作,对象像素需要为白色,因此您需要反转图像,使其为黑色背景上的白色文本。完成此操作后,填充所有孔,找到周长,然后重新恢复为原始的配色方案。
您可能还需要加粗所得的周长,因为这只会找到1像素宽的边界。您的示例显示,周长为几像素厚。使用方形结构元素进行扩张可能会有所帮助。
%// Read in image, convert to binary and invert
im = imread('http://i.stack.imgur.com/ooWFP.jpg');
im = ~im2bw(im);
%// Fill in holes
im_fill = imfill(im, 'holes');
%// Find perimeter
out = bwperim(im_fill);
%// Expand the perimeter and reinvert
out = ~imdilate(out, strel('square', 5));
%// Show image
imshow(out);
我们得到这个:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句