通过open-cv减少手机图像的不必要干扰

时间:2019-06-02 18:00:23

标签: python opencv image-processing

我的图片是通过电话拍摄的。我无法减少照片的不必要杂音

我试图增加对比度和亮度,但效果不佳

 img = cv2.imread(image_path, 0)

    blur = cv2.GaussianBlur(img, (5, 5), 0)
    thresh = cv2.adaptiveThreshold(blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11,
                                   2)  # Convert Image To Binary

    plt.imshow(img)

这是我的原始照片

original

这是我处理后的照片

result

这是我期望的照片

expected

2 个答案:

答案 0 :(得分:0)

您已使用正确的阈值方法从原始图像生成二进制图像,而需要进行一些优化才能获得最佳结果:

import cv2 as cv
import matplotlib.pyplot as plt

img = cv.imread('aa.jpg', 0)
blur = cv.medianBlur(img,11)
# blur = cv.GaussianBlur(img,(11,11),0)
thresh = cv.adaptiveThreshold(blur,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,\
            cv.THRESH_BINARY, 31, 4)

plt.subplot(121),plt.imshow(img)
plt.subplot(122),plt.imshow(thresh)
plt.show()

答案 1 :(得分:0)

我不知道您是否还需要滤除笔迹,因为在这种情况下,您需要更复杂的东西。 无论如何,您的代码中的错误仅在于

plt.imshow(img)

您只是绘制原始图像,而不是经过过滤的图像...请尝试

plt.imshow(blur)

或这个

plt.imshow(thresh)

并检查结果