gpt4 book ai didi

python - 如何使用python opencv从图像中删除隐藏标记?

转载 作者:行者123 更新时间:2023-12-02 15:11:02 24 4
gpt4 key购买 nike

我想从事一个小项目来挑战我的计算机视觉和图像处理技能。我遇到了一个项目,我想从图像中删除隐藏的标记。隐藏在这里是指在 rgb 空间中不容易看到的水印,但是当您转换为 hsv 或其他空间时,这些标记变得可见。
下面是一个例子:
BGR空间:
enter image description here
HSV空间:
enter image description here
我尝试了不同的方法,但能够实现一个解决方案,从图像中删除这些水印。我在这里发布这个问题是为了获得解决这个问题的不同想法。
我试过的:
我尝试了各种方法,但都没有奏效,共享代码可能无济于事。没有必要为其提供代码,伪代码、想法或任何线索将不胜感激。

  • 我注意到隐藏的标记都是类似于 RGB(90,94,105) 的颜色。当我分别显示 R、G 和 B 时,我注意到水印仅在 B channel 中可见。我想如果调整/去除B channel 中的标记并再次合并图像,可能会得到更好的结果。

  • 代码 :
    b,g,r = cv2.split(img)
    b = b//2;
    r = cv2.merge((r,g,b))
    cv2.imshow("image",r)
    问题 :这并不能解决问题,它确实使颜色变暗,但图像颜色也受到干扰。
  • 我试着玩弄 B channel ,看看是否能完成一些事情。
  • 我还注意到,如果我们将图像转换为 LUV 空间,那么标记在 V 空间中是可见的。
  • 最佳答案

    这可能是一种可能的方法。潜在的想法是在 HSV channel 中存在原始图像中不存在的可见边缘。以下是并排的 H、S 和 V channel :
    enter image description here
    因此,如果我们找到原始图像中的边缘和 HSV 图像中的边缘并对其进行区分,水印应该会出现。然后可以将其用作蒙版,使用 在原始图像中进行修复。 OpenCV inpaint .
    我只是在用 ImageMagick 在终端中,但它可以通过 同等地完成OpenCV , 皮尔 scikit 图像 :

    # Detect edges visible in original image and auto-level
    convert watermarked.png -colorspace gray -auto-level -canny 0x1+1%+3% -auto-level RGB-edges.png
    enter image description here
    # Find visible edges in H, S and V colourspace, generate mean across all three and auto-level
    convert watermarked.png -colorspace hsv -separate -canny 0x1+1%+3% -evaluate-sequence mean -auto-level HSV-edges.png
    enter image description here
    # Find changemask between the two sets of edges
    convert RGB-edges.png HSV-edges.png -compose changemask -composite result.png
    enter image description here
    这个想法是现在水印被识别为黑色,因此在 中使用黑色区域(可能在形态上是封闭的)作为掩码。 OpenCV 修复 - 请参阅上面的链接。

    关于python - 如何使用python opencv从图像中删除隐藏标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63140037/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com