下面是输出
这是用红圈标记的。图像中有很多这样的线,我只标记了3个圆圈。如何去除这些线条?有没有过滤器可以删除这条线?我认为,这是由于角的存在。
最佳答案
你可以使用中值过滤器来删除那个东西。
尝试此代码,看看更改轨迹栏值(蒙版大小)时的差异。
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
灰度(使用相同的蒙版)
但它也会影响图像的其他部分。如果你不希望另一部分发生这种情况。您只能在您感兴趣的区域中应用此过滤器。
希望有帮助。
关于python - 使用什么过滤器可以消除角点对结果的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890432/