我的照片看起来像这样: http://i.imgur.com/Kev9jWd.png
我正在尝试单独裁剪每个数字,所以我最终会得到一个只包含0的图像数组,另一个只有1的图像数据等。在裁剪和灰度化原始图像之后,我有以下代码:
for i = 1:351
if(capture_crop_gray(:, i, :) > 100)
capture_crop(:, i, 1) = 255; %red
else
%we found the front of a character
for j = 1:301
if(capture_crop_gray(j, i, :) > 100)
capture_crop(j, i, 1) = 255;
end
end
end
end
这是我得到的结果: http://i.imgur.com/li0clzE.png
所以除了黑色数字之外,我能够为所有颜色着色,但我不确定如何将它们自己裁剪掉。我有图像处理工具包,所以如果有使用它的快捷方式,请告诉我。
答案 0 :(得分:1)
如果您可以在图像上运行连通分量算法,则应该能够找到图像中的每个数字,识别矩形边界,然后相应地裁剪/复制。有不同的方法可以解决这个问题,但以下内容应该相当简单:
虽然我希望全局二值化能够与您当前的结果图像一起使用,但如果不能,您可以尝试其他一些局部二值化方法或自适应二值化。
如果数字在二值化后分成多个部分 - 例如,如果“1”变成两个单独的斑点 - 则在运行连接的组件之前在黑色像素上运行几次形态学关闭(扩张,然后侵蚀)。
看起来这些功能可能有所帮助: