OpenCV算法确定黑白扫描图像的真实颜色(黑色,白色,灰色)?

时间:2013-06-25 23:22:23

标签: image opencv colors

我正在开发OpenCV中的一个小程序,它可以自动清理扫描的漫画页面。以下是理论前和后:

在: http://raw.senmanga.com/Bleach/541/7/

在: http://mangastream.com/read/bleach/26534422/10

第二个链接中已清理的图像是在photoshop中手动完成的。

正如您所看到的,我只需要使用黑色,白色和灰色,但原始图像和完成图像之间的比较显示扫描图像上的某些像素虽然应该是黑色但实际上是以白色返回的通过扫描仪。我想也许我可以从周围的像素中获取信息以确定像素的真实颜色,但在我开始研究这个想法之前,我想知道是否有任何算法已经可以做到这个真正的颜色确定我?我找不到更好的扫描仪,因此硬件改进不是一种选择。

2 个答案:

答案 0 :(得分:0)

很难评论,因为原始图像无法显示,但我猜想以更高的分辨率扫描并应用中值滤镜可以摆脱较小的补丁。

您还可以查看Image Inpainting functions,它们用于解决此类问题。

答案 1 :(得分:0)

拍摄8位深度图像

首先应用灰度(如果尚未)和histogram equalization

然后应用低通滤波器(高斯模糊)来减少噪音。

如果您愿意,您可能会想到某种类型的群集过滤而不是模糊。想法是这样的:创建一个窗口并从左上角开始搜索整个图像,如果窗口内有足够的黑色像素,则将窗口内的所有像素设置为黑色。

然后将像素分组:

组1:具有灰色< 5

的像素

组2:具有5 <1的像素。灰色&LT; 250

组3:具有250 <的像素。灰色

收回非模糊图像(直方图均衡后的图像),

第1组 - 写0

第2组 - 写127

第3组 - 写入255