我想删除背景颜色以提高OCR对图像的准确性。样品看起来象下面这样:删除OCR图像处理中的背景颜色
我把所有的信件后处理后的图像中,而只是去除光紫色纹理背景。是否有可能使用Imagemagick等开源软件将其转换为二进制图像(黑/白)以实现此目标?如果背景有多种颜色会怎么样?解决方案是一样的吗?
此外,如果我还想删除紫色字母(剧院名称)和行以便只保留黑色字母呢?简单的裁剪可能不起作用,因为紫色字母也可能出现在其他地方。
我正在寻找一种解决方案,而不是像Photoshop那样的工具。
我想删除背景颜色以提高OCR对图像的准确性。样品看起来象下面这样:删除OCR图像处理中的背景颜色
我把所有的信件后处理后的图像中,而只是去除光紫色纹理背景。是否有可能使用Imagemagick等开源软件将其转换为二进制图像(黑/白)以实现此目标?如果背景有多种颜色会怎么样?解决方案是一样的吗?
此外,如果我还想删除紫色字母(剧院名称)和行以便只保留黑色字母呢?简单的裁剪可能不起作用,因为紫色字母也可能出现在其他地方。
我正在寻找一种解决方案,而不是像Photoshop那样的工具。
您可以对图像应用模糊处理,以便获得几乎清晰的背景。然后将原始图像的每个像素的每个颜色分量除以背景上的像素的对应分量。你会得到白色背景上的文字。额外的后处理可以进一步帮助。
如果文字比背景颜色深(在每个颜色分量中),则此方法起作用。否则,您可以反转颜色并应用此方法。
您可以使用GIMP(或任何其他图像编辑工具)执行此操作。
图像模糊:
差图像:
二进制:
如果你正在做它作为一个一次性的,GIMP是可能够好了。如果你期望这么做很多次,你可以写一个imagemagick脚本或者使用类似Python和OpenCV的代码来编写你的方法。
一些问题,上述办法:
如果你的图像捕获为RGB,只需使用绿色的图像或快速转换Bayer模式是大概@misha's convert to greyscale solutions可能会。
希望这可以帮助别人
OpenCV中使用一行代码,你可以使用的OpenCV和python
#Load image as Grayscale
im = cv2.imread('....../Downloads/Gd3oN.jpg',0)
#Use Adaptivethreshold with Gaussian
th = cv2.adaptiveThreshold(im,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)
这里得到,结果如下
这里的链接Image Thresholding
你为什么不上传到一些图像服务器的图像,并让我们看到了票? – 2011-04-01 00:21:53
,因为该网站阻止我上传图片,直到声望达到10。:-(我会尽快将其发布到里程碑,或者我可以给你发一封邮件。 – charles 2011-04-01 00:55:57