2010-12-04 7 views
3

J'essaie d'utiliser OpenCV avec Python et de convertir du code C++. Quoi qu'il en soit, si je le fais:Différence entre "import cv" et "import opencv.cv" en utilisant Python + OpenCV?

import cv 
img = cv.LoadImage('image.jpg') 

C'est bon. Ou:

import opencv.cv as opcv 
size = opcv.cvSize(40, 50) 

Mais de toute façon, le module cv ne possède pas la structure de données cvSize et opencv.cv n'a pas le LoadImage. Alors, qu'est-ce que chaque module a exactement? J'ai essayé de regarder dans la documentation mais je n'ai pas pu le trouver. Suis-je censé l'utiliser comme ceci ou ma configuration est-elle mal configurée?

Répondre

2

La vraie réponse est :) que les deux « opencv.cv d'importation » ou « d'importation OpenCV cv "sont les anciennes importations d'emballage.

Depuis OpenCV 2.0, le nouveau style emballage Python est utilisé et le style que vous devez utiliser ressemble à ceci:

# import only cv, no opencv 
# this also brings in sub modules such as highgui 
import cv 
# no "cv" prepended before all method names 
src_mat = cv.LoadImageM('yourfilename.png', cv.CV_LOAD_IMAGE_GRAYSCALE) 
# let's show the image in a window 
cv.NamedWindow('your name', 1) 
cv.ShowImage('your name', src_mat) 
cv.WaitKey 

Le enveloppements style ancien fait usage de SWIG, les enveloppements nouveau style, à en juger par le code source opencv 2.2, semble être self-made.

0

Avec:

import cv 

Vous importez le module de cv de là où elle existe dans les modules Python répertoires de recherche. Cela pourrait être une version différente du module stockée quelque part en dehors de l'installation du paquet opencv, comme cela semble être dans ce cas.

Mais avec:

import opencv.cv 

Vous importez explicitement les paquets OpenCV version de cv, à savoir celui dans le répertoire d'installation du package OpenCV. Cette version garantit presque que vous avez l'un de l'emballage OpenCV et il semble être identique à l'aide de la syntaxe:

from opencv import cv 
+0

J'ai seulement installé OpenCV via le dépôt Ubuntu. Y a-t-il un moyen de dire où ils pointent exactement? En outre, la documentation dit d'utiliser 'import cv' à la place: http://opencv.willowgarage.com/wiki/PythonInterface – otirra