python - 使用什么过滤器可以消除角点对结果的影响

标签 python opencv image-processing

下面是输出 enter image description here

这是用红圈标记的。图像中有很多这样的线,我只标记了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

enter image description here

灰度(使用相同的蒙版)

enter image description here

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

希望有帮助。

关于python - 使用什么过滤器可以消除角点对结果的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890432/

相关文章:

python - 使用 Django 将数据发布到另一个站点

c++ - 我需要一个使用 OpenCV 比较 2 个面孔(UIimage )并通过 IOS 获取距离的示例

python - 如何从一堆图像中裁剪具有不同位置的相同大小的图像 block ?

matlab - 具有不同切片数量的两个体积的图像配准

Python-pandas : How can I simultaneously select all even columns of a big Dataframe

python - 如何在 ViewSet 中返回 403 而不是 404

python - 出现 "integer is required (got type tuple)"错误,使用 cv2 绘制矩形

c++ - OpenCV、Matlab 和 STL 容器

c# - 将 base 64 字符串转换为图像并保存

python - 访问在 Docker 容器上运行的 Jupyter notebook