史蒂夫与MATLAB图像处理

图像处理的概念、算法和MATLAB

清理扫描文本

今年早些时候,我与博客阅读器克雷格·杜利特尔交换电子邮件。克雷格是编写MATLAB脚本清理扫描页面从旧手稿。他寄给我的样品是之一页面从“服务炮弹的碎片,“N.F.莫特,j·h·威尔金森和T.H.明智,供应、武器研究部门、理论研究报告37/44号,1944年12月。

图片太大了,显示在这个博客的完整的决议,这是一个缩略图视图。

url =“https://blogs.mathworks.com/images/steve/186/scanned_page.png”;页面= imread (url);缩略图= imresize (im2uint8(页面),“OutputSize”,256年南);imshow(缩略图)

克雷格希望建议如何清理孤立的“噪音”点没有删除小点的字符。让我们仔细看看裁剪部分的页面。

bw =页面(735:1280 11:511);imshow (bw)

我们可以开始使用bwareaopen去除小点。例如:

bw2 = imcomplement (bw);bw3 = bwareaopen (bw2 8);imshow (imcomplement (bw3))

不幸的是,这种方法消除了部分的字符。这里有一个方法使用bwlabelregionprops强调的像素被移除。

删除= xor (bw2 bw3);L = bwlabel(删除);s = regionprops (L,“重心”);质心=猫(1、s.Centroid);imshow (bw)情节(质心(:1),重心(:,2),“罗”)举行

你可以看到一些删除点噪声,而其他部分的字符“e”,“我”,“m”,等等。

我建议克雷格是恢复删除点“关闭”后剩下的字符bwareaopen。我们可以使用扩张和一些逻辑运算符。

bw4 = imdilate (bw3 strel (“磁盘”5));imshow (bw4)

现在做一个合乎逻辑的和扩张的字符像素被bwareaopen。这些像素我们要放回。

重叠= bw4 &删除;imshow(重叠)

使用一个逻辑或恢复删除的像素。

bwout = imcomplement (bw3 |重叠);imshow (bwout)

我也建议使用形态学recontruction获得所有上面的像素连接重叠像素发现。似乎并不是非常必要的,不过,我要保存这个技术未来的博客,使用一个更好的例子。

我肯定有很多不同的方法方法本文清理问题。谁有建议其他方法?

谢谢你让我用你的例子中,克雷格。




使用MATLAB®7.5发表

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。