Hay algunas omisions en la corriente nueva lib cv2. Por lo general, son constantes que no se han migrado a cv2 todavía y todavía están en cv solamente. Aquí hay un código para ayudarle a encontrarlos:
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 es un envoltorio más fiel en torno librerías de C++ que el cv anterior. Lo encontré confuso al principio, pero es mucho más fácil una vez que haces el cambio. El código es mucho más fácil de leer y las manipulaciones de la matriz numpy son muy rápidas.
Sugiero que encuentre y use las constantes de cv mientras informa sus omisiones como errores al rastreador de errores de opencv en willowgarage. cv2 es fresco y de menta, pero mejorará.
FYI. Vale la pena ejemplificar las ventanas nombradas antes de su uso, matándolas también al salir. IMHO
E.g.
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()
Los enlaces de Python son solo una envoltura alrededor de la interfaz C++, que es principalmente un envoltorio alrededor de la interfaz C. En cuanto a su última pregunta, envíe un mensaje a la lista de correo de OpenCV y pregúnteles :) – karlphillip