【发布时间】:2021-08-29 22:02:35
【问题描述】:
我尝试了以下代码:
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()
通过更改滑块的位置,不会对图像产生任何影响。我无法解决这个问题。我想我缺少一些东西!请帮忙!
【问题讨论】:
-
如果 ksize 为正,您的 medianBlur 过滤器大小始终为负。您的意思是使用 +2*ksize-1 而不是 -2*ksize-1?
-
我不这么认为。它必须是负面的。这是参考stackoverflow.com/questions/53152665/…
-
“参考”有同样的错误。
-
好的。谢谢,我不知道。很抱歉质疑它。我没有使用 getTrackbarPos() 并且负值对我来说似乎很奇怪。检查在 medianBlur 中使用的 ksize 值是否符合您的预期。检查看看 while(True) 实际上是 True。您是否确实验证了您的 getTrackbarPos 值是否返回为负数?
-
gettrackbarpos 只会在找不到跟踪栏时返回 -1(这是因为您在调用 Blur 时正在寻找 ksize),它应该始终返回一个介于低和高之间的数字,因此您应该删除- 来自 ksize
标签: python opencv image-processing cv2 trackbar