微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Opencv Python 中使用值指针是不安全和不推荐使用的错误

如何解决在 Opencv Python 中使用值指针是不安全和不推荐使用的错误

我是 opencv 和 python 的新手,正在从文档中学习基础知识。我正在学习 opencv (python) 中的轨迹栏。

我编写了与文档 here 中所示相同的代码。 (注意版本是4.5.3)

这是我的代码

import numpy as np
import cv2 as cv

def nothing(x):
    pass

# Create a black image,a window
img = np.zeros((300,512,3),np.uint8)

cv.namedWindow('image')

# create trackbars for color change
cv.createTrackbar('R','image',255,nothing)
cv.createTrackbar('G',nothing)
cv.createTrackbar('B',nothing)

# create switch for ON/OFF functionality
switch = '0 : OFF \n1 : ON'
cv.createTrackbar(switch,1,nothing)

while(1):
    cv.imshow('image',img)
    k = cv.waitKey(1) & 0xFF
    if k == 27:
        break
    # get current positions of four trackbars
    r = cv.getTrackbarPos('R','image')
    g = cv.getTrackbarPos('G','image')
    b = cv.getTrackbarPos('B','image')
    s = cv.getTrackbarPos(switch,'image')
    if s == 0:
        img[:] = 0
    else:
        img[:] = [b,g,r]
cv.destroyAllWindows()

当我运行此代码时,我收到以下烦人的长警告:

Using 'value' pointer is unsafe and deprecated. Use NULL as value pointer. To fetch trackbar value setup callback.

如果有人想参考,这是完整的警告信息:

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

我试图理解它想表达的意思,但我无法理解。 AFAIU,错误在行(及后续):

r = cv.getTrackbarPos('R','image')

即使认为这是一个警告,我也想摆脱它,因为它使用了 unsafedeprecated 一词。

我有版本 4.5.3.56 的 opencv-python。我已经尝试浏览文档,但它们似乎与旧版本相同,并且此特定功能在我的版本中已弃用。

谁能建议我应该怎么做才能避免这种情况?

解决方法

4.5.3 中的这个 bug 已经是 reported and fixed(至少对于 python)

然而,除非你在本地重建它,否则你将不得不等待下一个pypi版本;(

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。