【问题标题】:Using value pointer is unsafe and deprecated error in Opencv Python在 Opencv Python 中使用值指针是不安全且不推荐使用的错误
【发布时间】:2021-07-20 05:35:45
【问题描述】:

我是 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',0,255,nothing)
cv.createTrackbar('G','image',0,255,nothing)
cv.createTrackbar('B','image',0,255,nothing)

# create switch for ON/OFF functionality
switch = '0 : OFF \n1 : ON'
cv.createTrackbar(switch, 'image',0,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。我已经尝试过查看文档,但似乎它们与旧版本的相同,并且在我的版本中已弃用此特定功能。

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

【问题讨论】:

  • 嗯...我有 OpenCV 4.5.2 版,运行代码时根本看不到任何错误。这可能是一个新错误或您的配置中的其他原因导致它。您是从源代码构建还是获得了预构建版本?我的是从源代码构建的。
  • 感谢@SeanWalker 抽出宝贵时间。我的是预制的。通过pip install opencv-python 安装。另外,我使用 opencv 4.5.2 在不同的 virtualenv 中尝试了相同的代码,但没有出现这样的警告。
  • 听起来你应该向 OpenCV 提交错误报告。您可能发现了一个新问题。

标签: python image opencv


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-02-06
    • 2012-08-03
    • 1970-01-01
    • 2020-07-22
    • 2014-11-04
    • 2020-12-21
    • 2023-03-21
    • 2019-12-06
    • 1970-01-01
    相关资源
    最近更新 更多