Py学习  »  Python

OpenCV-Python4.5.3创建滚动条的大Bug

OpenCV学堂 • 3 年前 • 417 次点击  

怎么发现的

必须说明一下,第一个意识到这个问题的人不是我,是我在B站上的课程OpenCV-Python快速入门30讲的一个小伙伴告诉我,说运行亮度调整的代码,只要调用OpenCV HGUI的滚动条组件必然得到一个下面这样的错误,贴图如下:


当时我收到截图看到版本是opencv4.5.4的,于是在我的OpenCV-Python4.5.3上也测试一下,发现也是有的,报错信息如下:

[ WARN:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-uzca7qz1\opencv\modules\highgui\src\window.cpp (704) cv::createTrackbar UI/Trackbar(lightness@input): Using 'value' pointer is unsafe and deprecated. Use NULL as value pointer. To fetch trackbar value setup callback.


然后我发现OpenCV官方的github上也有人报告了这个Bug,貌似还没有修正!


https://github.com/opencv/opencv/issues/20408


怎么重现这个Bug

用下面这段代码必然得到,肯定可以重现,

版本OpenCV-Python 4.5.3或者4.5.4系统Windows10 64
def nothing(x):
    print(x)

def adjust_lightness_demo():
    image = cv.imread("D:/images/test.png"# BGR, 0~255
    cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
    cv.createTrackbar("lightness""input"0100, nothing)
    cv.imshow("input", image)
    blank = np.zeros_like(image)
    while True:
        pos = cv.getTrackbarPos("lightness" "input")
        blank[:,:] = (pos, pos, pos)
        # cv.imshow("blank", blank)
        result = cv.add(image, blank)
        cv.imshow("result", result)
        c = cv.waitKey(1)
        if c == 27:
            break
    cv.destroyAllWindows()



扫码查看OpenCV+Pytorch系统化学习路线图


 推荐阅读 

CV全栈开发者说 - 从传统算法到深度学习怎么修炼

Pytorch轻松实现经典视觉任务

教程推荐 | Pytorch框架CV开发-从入门到实战

OpenCV4 C++学习 必备基础语法知识三

OpenCV4 C++学习 必备基础语法知识二

OpenCV4.5.4 人脸检测+五点landmark新功能测试

OpenCV4.5.4人脸识别详解与代码演示

OpenCV二值图象分析之Blob分析找圆



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/122949
 
417 次点击