python opencv 4.5.5 cv :: getTrackBarpos错误发生在新版本中
我在下面遇到了一个错误:
File "C:\Users\deniz\OneDrive\Desktop\Bitirme\2.dönem\Program\Composite Project22.py", line 814, in kızart
kırmızı = cv.getTrackbarPos('Red Area Ratio','Filter')
cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:862: error: (-215:Assertion failed) trackbar in function 'cv::getTrackbarPos'
Traceback (most recent call last):
File "C:\Users\deniz\OneDrive\Desktop\Bitirme\2.dönem\Program\Composite Project22.py", line 816, in kızart
contrast = cv.getTrackbarPos("Contrast","Filter")
cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:862: error: (-215:Assertion failed) trackbar in function 'cv::getTrackbarPos'
255 127 127
我的主要问题是下面的代码与我的python旧设置效果很好。但是,我购买了新的SSD,并安装了新版本的Python和OpenCV。我在Stackoverflow上搜索了此主题,有些人解决了由错别字引起的此问题,但我的旧版本设置中没有任何错别字或其他错误。该代码也可以在新设置上工作,但功能确实可以正常工作,但不准确地像旧版本一样,并且不会以正确的形式输出图像。
def kızart(kırmızı=255,brightness=255,contrast=127):#kırmızı=255,brightness=255,contrast=127
global effect
global fotoolcer
global label1
global test
global image1
global effect
brightness = cv.getTrackbarPos('Brightness','Filter')
kırmızı = cv.getTrackbarPos('Red Area Ratio','Filter')
contrast = cv.getTrackbarPos('Contrast','Filter')
print(brightness,kırmızı,contrast)
effect = pixcont(image,kırmızı,brightness,contrast)
cv.imshow('Filtered Image', effect)
cv.imwrite("Filtered Image.png",effect)
这两个代码称为“ pixcont”之间有一个函数。
if __name__ == '__main__':
# The function imread loads an image
# from the specified file and returns it.
if vf_iter_counter==1:
original = cv.imread(vf_iter_basename)
elif vf_iter_counter==0:
original = cv.imread(basename)
# Making another copy of an image.
image = original.copy()
# The function namedWindow creates a
# window that can be used as a placeholder
# for images.
cv.namedWindow('Filter')
# The function imshow displays an
# image in the specified window.
cv.imshow('Filter', original)
# createTrackbar(trackbarName,
# windowName, value, count, onChange)
# Brightness range -255 to 255
# Contrast range -127 to 127
cv.createTrackbar('Brightness','Filter', 255,2*255,kızart)
cv.createTrackbar('Red Area Ratio','Filter', 127,255,kızart)
cv.createTrackbar('Contrast','Filter',127, 2 * 127,kızart)
cv.waitKey(0)
它会流利地读取跟踪栏,并且可以得到跟踪栏的结果并打印它们。在旧设置中,该功能在更改比例尺之前,该功能不会启动该过程。在此版本中,它会自动启动它。我不了解真正的问题。 PS:ı是否必须在系统路径中添加OpENCV?我不记得我做到了。 谢谢。
I got an error down below:
File "C:\Users\deniz\OneDrive\Desktop\Bitirme\2.dönem\Program\Composite Project22.py", line 814, in kızart
kırmızı = cv.getTrackbarPos('Red Area Ratio','Filter')
cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:862: error: (-215:Assertion failed) trackbar in function 'cv::getTrackbarPos'
Traceback (most recent call last):
File "C:\Users\deniz\OneDrive\Desktop\Bitirme\2.dönem\Program\Composite Project22.py", line 816, in kızart
contrast = cv.getTrackbarPos("Contrast","Filter")
cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:862: error: (-215:Assertion failed) trackbar in function 'cv::getTrackbarPos'
255 127 127
My main problem is the code below worked fine with my old setup for python. However, ı bought a new SSD and installed the new version of python and OpenCV. I searched this topic on StackOverflow and some people fixed this problem caused by a typo but ı do not have any typos or other errors in my old version setup. Facts that this code can work on the new setup as well but functions do work but not accurately like the old version and do not output the image in the correct form.
def kızart(kırmızı=255,brightness=255,contrast=127):#kırmızı=255,brightness=255,contrast=127
global effect
global fotoolcer
global label1
global test
global image1
global effect
brightness = cv.getTrackbarPos('Brightness','Filter')
kırmızı = cv.getTrackbarPos('Red Area Ratio','Filter')
contrast = cv.getTrackbarPos('Contrast','Filter')
print(brightness,kırmızı,contrast)
effect = pixcont(image,kırmızı,brightness,contrast)
cv.imshow('Filtered Image', effect)
cv.imwrite("Filtered Image.png",effect)
There is a function between these two code called "pixcont".
if __name__ == '__main__':
# The function imread loads an image
# from the specified file and returns it.
if vf_iter_counter==1:
original = cv.imread(vf_iter_basename)
elif vf_iter_counter==0:
original = cv.imread(basename)
# Making another copy of an image.
image = original.copy()
# The function namedWindow creates a
# window that can be used as a placeholder
# for images.
cv.namedWindow('Filter')
# The function imshow displays an
# image in the specified window.
cv.imshow('Filter', original)
# createTrackbar(trackbarName,
# windowName, value, count, onChange)
# Brightness range -255 to 255
# Contrast range -127 to 127
cv.createTrackbar('Brightness','Filter', 255,2*255,kızart)
cv.createTrackbar('Red Area Ratio','Filter', 127,255,kızart)
cv.createTrackbar('Contrast','Filter',127, 2 * 127,kızart)
cv.waitKey(0)
It reads the trackbar fluently and ı can get the trackbar results and print them.In the old setup, the function does not start the process until ı changed the scale bar. In this version it automatically starts it.I don't understand the real problem.
P.S.:Do ı have to add OpenCV in the system path? I don't remember ı did that.
Thx.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我根据Berak的建议找到解决方案。我在段循环中拆分并运行该功能。
解决方案:
I find the solution according to Berak's advice. I split and run the function in the while loop.
Solution: