gpt4 book ai didi

python - 为什么 Python cv2 模块依赖于(旧的)cv

转载 作者:太空狗 更新时间:2023-10-30 00:46:24 26 4
gpt4 key购买 nike

我是 OpenCV 的新手,想使用它的 Python 绑定(bind)。

在 OSX 上试用示例时,我注意到

1.) imshow 创建的窗口不能调整大小

2.) 我可以通过事先调用 cv2.namedWindow 来解决这个问题,例如:cv2.namedWindow('缩放', cv2.cv.CV_WINDOW_NORMAL)

我们可以将 CV_WINDOW_NORMAL 之类的符号从 cv 添加到 cv2 中吗!?谁有权提交 openCV 的 Python 绑定(bind)?

谢谢,塞巴斯蒂安·哈泽

最佳答案

当前新的 cv2 库中有一些遗漏。通常这些是尚未迁移到 cv2 且仍仅在 cv 中的常量。这里有一些代码可以帮助您找到它们:

import cv2
import cv2.cv as cv
nms = [(n.lower(), n) for n in dir(cv)] # list of everything in the cv module
nms2 = [(n.lower(), n) for n in dir(cv2)] # list of everything in the cv2 module

search = 'window'

print "in cv2\n ",[m[1] for m in nms2 if m[0].find(search.lower())>-1]
print "in cv\n ",[m[1] for m in nms if m[0].find(search.lower())>-1]

cv2 比之前的 cv 更忠实地围绕 C++ 库进行包装。一开始我发现它很困惑,但一旦你做出改变就容易多了。代码更易于阅读,并且 numpy 矩阵操作非常快。

我建议您找到并使用 cv 常量,同时将它们的遗漏作为错误报告给 willowgarage 的 opencv 错误跟踪器。 cv2 清新薄荷味,但会有所改善。

仅供引用。非常值得在使用前实例化命名的窗口,并在退出时杀死它们。恕我直言

例如

import cv2
if __name__ == '__main__':
cap = cv2.VideoCapture(0) # webcam 0
cv2.namedWindow("input")
cv2.namedWindow("grey")
key = -1
while(key < 0):
success, img = cap.read()
cv2.imshow("input", img)
grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("grey", grey)
key = cv2.waitKey(1)
cv2.destroyAllWindows()

关于python - 为什么 Python cv2 模块依赖于(旧的)cv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9226258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com