我是OpenCV的新手,想使用它的Python绑定.
在OSX上试用样品时,我注意到了
1.)窗口imshow创建的不可调整大小
2.)我可以通过事先调用cv2.namedWindow来修复它,例如:cv2.namedWindow('zoom',cv2.cv.CV_WINDOW_NORMAL)
我们可以将cv中的CV_WINDOW_NORMAL等符号添加到cv2中吗?谁拥有openCV Python绑定的权利?
谢谢,Sebastian Haase
当前的新cv2 lib中有一些省略.通常这些是尚未迁移到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]
Run Code Online (Sandbox Code Playgroud)
cv2是比以前的cv更加忠实的C++库包装器.我一开始发现它很混乱,但是一旦你做出改变就会容易得多.代码更容易阅读,numpy矩阵操作非常快.
我建议你找到并使用cv常量,同时向willowgarage的opencv bug跟踪器报告它们的遗漏.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()
Run Code Online (Sandbox Code Playgroud)