使用 cv2.createTrackbar 使用 python 模糊图像
Use cv2.createTrackbar to blur images using python
我尝试了以下代码:
import cv2
import numpy as np
def nothing(x):
pass
cv2.namedWindow('Image')
img = cv2.imread("kakashi.jpg")
low = 1
high = 100
cv2.createTrackbar('Blur', 'Image',low,high,nothing)
while (True):
ksize = cv2.getTrackbarPos('ksize', 'Image')
ksize = -2*ksize-1
image = cv2.medianBlur(img,ksize)
cv2.imshow('Image', image)
k = cv2.waitKey(1) & 0xFF
if k == 27:
break
cv2.destroyAllWindows()
通过更改滑块的位置,不会对图像产生任何影响。我无法解决这个问题。我想我缺少什么!请帮忙!
有一个简单的错误,你在做什么。您在此处将轨迹栏名称定义为 "Blur":
cv2.createTrackbar('Blur', 'Image',low,high,nothing)
然后您将轨迹栏称为 "ksize"
ksize = cv2.getTrackbarPos('ksize', 'Image')
这是错误的,所以如果您只是将这一行更改为这一行:
ksize = cv2.getTrackbarPos('Blur', 'Image')
它会修复。
注意:正如@fmw42在评论中提到的,您计算的中位数也存在一些问题。您可以重新检查一下。
我尝试了以下代码:
import cv2
import numpy as np
def nothing(x):
pass
cv2.namedWindow('Image')
img = cv2.imread("kakashi.jpg")
low = 1
high = 100
cv2.createTrackbar('Blur', 'Image',low,high,nothing)
while (True):
ksize = cv2.getTrackbarPos('ksize', 'Image')
ksize = -2*ksize-1
image = cv2.medianBlur(img,ksize)
cv2.imshow('Image', image)
k = cv2.waitKey(1) & 0xFF
if k == 27:
break
cv2.destroyAllWindows()
通过更改滑块的位置,不会对图像产生任何影响。我无法解决这个问题。我想我缺少什么!请帮忙!
有一个简单的错误,你在做什么。您在此处将轨迹栏名称定义为 "Blur":
cv2.createTrackbar('Blur', 'Image',low,high,nothing)
然后您将轨迹栏称为 "ksize"
ksize = cv2.getTrackbarPos('ksize', 'Image')
这是错误的,所以如果您只是将这一行更改为这一行:
ksize = cv2.getTrackbarPos('Blur', 'Image')
它会修复。
注意:正如@fmw42在评论中提到的,您计算的中位数也存在一些问题。您可以重新检查一下。