如何在执行 OpenCV 图像减法时去除背景噪声?

Din*_*lam 2 python opencv image-processing

我有两个图像,一个是文档图像,另一个图像是模板图像。

文档图像

模板图像

我正在文档图像和模板图像之间执行 OpenCV 图像减法。

from matplotlib import pyplot as plt
import numpy as np
import cv2
template_img = cv2.imread('data_3/template.png')
document_img = cv2.imread('data_3/document.png')
result_img = cv2.subtract(template_img,document_img)
plt.imshow(result_img)
plt.title('Result Image')
plt.show()
Run Code Online (Sandbox Code Playgroud)

上述程序的输出:

在此输入图像描述

这里的背景噪音是 Apt.no。OpenCV图像减法表现不佳。

我注意到为什么图像减法表现不佳的一件事是因为两个图像的质量不相同。有没有办法去除图像减法过程中出现的背景噪声?

zin*_*rod 5

该代码是不言自明的。

import numpy as np
import cv2

if __name__ == '__main__':

    image = cv2.imread('image.png',cv2.IMREAD_GRAYSCALE)
    template = cv2.imread('template.png',cv2.IMREAD_GRAYSCALE)

    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
    template = cv2.morphologyEx(template, cv2.MORPH_ERODE, kernel,iterations = 2)

    image[template == 0] = 255

    cv2.imshow('image', image)
    cv2.imshow('tmpl', template)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

结果