【问题标题】:How to extract noise from two similar images?如何从两个相似的图像中提取噪声?
【发布时间】:2020-05-29 02:49:52
【问题描述】:

我有两张相似(不相同)的图片。一个有噪音,另一个是原始的,没有噪音。我想通过两个图像的差异来提取噪声并将提取的噪声添加到原始图像中,以便两个图像相同。原始图像由数码相机捕获。使用网络摄像头从监视器(显示原始图像)捕获嘈杂的图像。

import cv2

orig_image = cv2.imread("./00029_68.jpg")
cam_image = cv2.imread("/home/ankit/Captured_using_webcam.png")

cv2.imshow("Subtracted Image : cam_image - orig_image", 
cv2.subtract(cam_image, orig_image))
cv2.waitKey(0)
cv2.destroyAllWindows()

【问题讨论】:

  • 你能提供一个最小的工作示例吗?
  • 代码已在帖子中更新。
  • 看起来像是风格转移。噪点是第二张图片与原始图片相结合的样式。

标签: python opencv image-processing computer-vision noise


【解决方案1】:

我不确定您是否意识到问题的复杂性。 你的问题是: - 原始图像和“嘈杂”图像的不同分辨率 - 翻译错误 - 拍摄原图时的透视失真

理论上,您可以在 cv2 中找到可以处理这些问题的图像处理工具。当您能够摆脱失真时,您可以简单地应用您发布的代码来查看由于相机、监视器和您所做的所有计算的系统错误而导致的噪声。

【讨论】:

    【解决方案2】:

    为了找出两张图片之间的差异,您可以利用Image Quality Assessment: From Error Visibility to Structural Similarity 中介绍的结构相似性指数 (SSIM)。此方法已在 scikit-image 库中实现,用于图像处理。您可以使用pip install scikit-image 安装scikit-image

    使用 scikit-image 中的 compare_ssim() 函数,它返回一个 score 和一个差异图像 diffscore 表示两个输入图像之间的结构相似度指数,可以落在范围 [-1,1] 之间,值越接近 1 表示相似度越高。但是,由于您只对这两个图像的不同之处感兴趣,所以diff 图像是您要寻找的。 diff 图像包含两个图像之间的实际图像差异。

    以下是两张图片之间的实际差异。考虑使用.png 图像,因为它们是无损的。 .jpg 图像是有损的,并且由于图像压缩而有噪声。

    代码

    from skimage.measure import compare_ssim
    import cv2
    
    # Load images
    image1 = cv2.imread('1.jpg')
    image2 = cv2.imread('2.jpg')
    
    # Convert images to grayscale
    image1_gray = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
    image2_gray = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)
    
    # Compute SSIM between two images
    (score, diff) = compare_ssim(image1_gray, image2_gray, full=True)
    # The diff image contains the actual image differences between the two images
    # and is represented as a floating point data type in the range [0,1] 
    # so we must convert the array to 8-bit unsigned integers in the range
    # [0,255] before we can use it with OpenCV
    diff = (diff * 255).astype("uint8")
    
    cv2.imshow('diff',diff)
    cv2.waitKey()
    

    注意:您的两个输入图像并不完全相同,它们略有偏移,因此 SSIM 会拾取偏移的像素

    【讨论】:

      猜你喜欢
      • 2020-02-19
      • 2014-06-22
      • 2023-04-05
      • 2011-01-27
      • 1970-01-01
      • 2012-02-16
      • 2014-05-22
      • 2021-08-16
      相关资源
      最近更新 更多