使用什么过滤器来消除结果上的角落效果

时间:2014-04-06 05:43:56

标签: python opencv image-processing

以下是输出 enter image description here

以下是红色圆圈标记的内容。图像中有很多这样的线条,我只标记了3个圆圈。如何删除这些行?是否有任何过滤器可以删除此行?我想,这是因为存在角落。

1 个答案:

答案 0 :(得分:4)

您可以使用中位数过滤器删除该内容。

尝试此代码,并在更改轨迹栏的值(蒙版大小)时查看差异。

import cv2
import numpy as np

def nothing(x):
    pass

#image window
cv2.namedWindow('image')
cv2.namedWindow('image2')

# create trackbars for color change
cv2.createTrackbar('mask','image',1,10,nothing)
cv2.createTrackbar('mask2','image2',1,10,nothing)

#loading images
img = cv2.imread('VfgSN.png')     # load your image with path
gray_im = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

while True:
    # get current positions of trackbars
    m = cv2.getTrackbarPos('mask','image')
    m2 = cv2.getTrackbarPos('mask2','image2')
    median = cv2.medianBlur(gray_im,(2*m+1))
    median2 = cv2.medianBlur(img,(2*m2+1))
    cv2.imshow('image',median)
    cv2.imshow('image2',median2)
    #press ESC to stop
    k = cv2.waitKey(1) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()

带面具的结果图片:5

enter image description here

灰度(使用相同的蒙版)

enter image description here

但是它也会影响图像的其他部分。如果你不希望这发生在另一部分。您可以在您感兴趣的区域中应用此过滤器。

希望它有所帮助。