如何解决在 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')
即使认为这是一个警告,我也想摆脱它,因为它使用了 unsafe
和 deprecated
一词。
我有版本 4.5.3.56
的 opencv-python。我已经尝试浏览文档,但它们似乎与旧版本相同,并且此特定功能在我的版本中已弃用。
谁能建议我应该怎么做才能避免这种情况?
解决方法
4.5.3 中的这个 bug 已经是 reported and fixed(至少对于 python)
然而,除非你在本地重建它,否则你将不得不等待下一个pypi版本;(
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。