gpt4 book ai didi

python - 仅在 Python 的 OpenCV 轨迹栏上有奇数?

转载 作者:行者123 更新时间:2023-12-05 05:13:01 25 4
gpt4 key购买 nike

我正在学习如何在 Python 上使用 OpenCV 进行皮肤分割,现在我主要处于实验阶段,我正在使用高斯蓝来减少我在 Otsu 的二值化中得到的鲜明对比。

我发现在我的实验中非常有用的一个策略是使用显示窗口上的跟踪栏功能来更改各种参数,例如内核大小的选择和高斯函数的标准偏差。当我更改 std 时,轨迹栏工作得很好,但当我对内核大小执行相同操作时,我的程序崩溃了。

这样做的原因是内核大小只采用大于 1 的奇数作为两个值的元组。由于轨迹条是连续的,当我移动它并且轨迹条读取偶数时,高斯函数会抛出错误。

我希望您能为我提供一个解决方案,以创建仅包含数组中的奇数或偶数的轨迹栏(如果可能)。谢谢!

# applying otsu binerization to video stream
feed = cv2.VideoCapture(0)

# create trackbars to control the amount of blur
cv2.namedWindow('blur')
# callback function for trackbar
def blur_callback(trackbarPos):
pass
# create the trackbar
cv2.createTrackbar('Blur Value', 'blur', 1, 300, blur_callback)
# cv2.createTrackbar('Kernel Size', 'blur', 3, 51, blur_callback)

while True:
vid_ret, frame = feed.read()
# flip the frames
frame = cv2.flip(frame, flipCode=1)

# convert the feed to grayscale
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# get blur value from trackbar and apply gaussian blur to frame_gray
blurVal = cv2.getTrackbarPos('Blur Value', 'blur')
# kernelSize = cv2.getTrackbarPos('Kernel Size', 'blur')
frame_blur = cv2.GaussianBlur(frame_gray, (11, 11), blurVal)

# apply Otsu binerization on vanilla grayscale
otsu_ret, otsu = cv2.threshold(frame_gray, 0, 255, cv2.THRESH_OTSU)

# apply Otsu binerization on blurred grayscale
otsu_blue_ret, otsu_blur = cv2.threshold(frame_blur, 0, 255, cv2.THRESH_OTSU)


# show the differnt images
cv2.imshow('color', frame)
# cv2.imshow('gray', frame_gray)
cv2.imshow('blur', frame_blur)
cv2.imshow('otsu', otsu)
cv2.imshow('otsu_blur', otsu_blur)
# exit key
if cv2.waitKey(10) & 0xFF == ord('q'):
break

# release the feed and close all windows
feed.release()
cv2.destroyAllWindows()

最佳答案

要添加到 Louis 的答案中,您可以使用 setTrackbarPos() 将轨迹栏移动到奇数位置

参见:https://docs.opencv.org/trunk/d7/dfc/group__highgui.html#ga67d73c4c9430f13481fd58410d01bd8d

关于python - 仅在 Python 的 OpenCV 轨迹栏上有奇数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com