【问题标题】:replace black by white and white by black in images在图像中用白色替换黑色和用黑色替换白色
【发布时间】:2017-08-20 14:30:15
【问题描述】:

我有如下黑白图像 (png): 我想将黑色背景字体颜色替换为白色,将白色书写的字符替换为黑色。如何识别颜色并替换它?

因为我有一千张图片。无法手动识别字符在哪个图像中为黑色而背景为白色,反之亦然。我需要的只是每张图片我检查字符是否用黑色书写,如果不将字符颜色更改为黑色并将背景更改为白色。

这是我的数据样本的链接:https://drive.google.com/open?id=0B-QJnh0Uw96lbFVHbVBPclhycFk

【问题讨论】:

  • 检查角落的四个像素。如果至少有两个是黑色的,则图像是白色的。角色触摸角落的可能性很小......
  • 但是它可能会像上面倒V的情况一样导致平局,如果它被裁剪了2-3个像素,那么在这种情况下就会有平局@Miki跨度>
  • 您可以手动检查领带...它们会比原来的数千少得多
  • 我猜,遍历所有边界像素,取最大值就足够了@Miki
  • 您希望人们告诉您在一般情况下如何推断一个字符是白色还是黑色,但您只提供了 2 个示例。那么您希望它适用于 2 个示例还是适用于所有示例?如果是全部,请提供必要的数据。

标签: image python-3.x opencv image-processing


【解决方案1】:

如果白色内容的值为 255(如果它是二进制掩码 1),只需从 255 中减去您的图像。在 python 中,如果您的图像是 img

cv2.subtract(255, img) 

【讨论】:

  • 但是我有一千张图片,我需要识别每张图片的黑色部分和白色部分然后改变颜色。这样做就是加 255 和减 255。我的问题实际上是如何识别它们然后应用加 255 或减?
  • OpenCV 会这样吗?
  • @Micka 我猜这里的问题是你不知道什么时候反转
  • @Miki,是的
【解决方案2】:

对于您提供的示例,如果图像尺寸 >~26 像素宽,请反转。

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2019-03-28
    • 2019-12-13
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多