Tüm bu OpenCV Python arabirimleri arasında ne fark vardır?
Vardır
opencv
(OpenCV kitaplığı çocuklar),cv
(OpenCV eski kütüphane çocuklar)- Selefi
ctypes-opencv
35*.
Temel farklar nelerdir ve hangisini kullanmalıyım?
CEVAP
Resmi olarak, OpenCV Python arayüzleri, cv
cv2
iki tür bırakır.
cv:
cv
üzerinde çalışmaya başladım. Bu, tüm OpenCV veri türleri gibi korunur. Yüklendiğinde, örneğin, görüntü formatı C ile aynı cvMat
,.
Dizi işlemleri için cvSet2D
, cvGet2D
, vb gibi birçok işlevleri vardır. Ve tartışmalar, daha yavaş olduklarını söylüyorlar.
İmageROİ için cvSetImageROI
gibi özel fonksiyonlar gerekir.
Eğer hatlarını, cvSeq
bulursanız yapıları çok iyi değil hangi ile çalışmak için Python listeler veya NumPy diziler göre döndürülür.
(Ve sanırım yakında gelişimi durdurulacak. Daha önce, sadece cv
vardı. Daha sonra, OpenCV cv
cv2
ile geldi. Şimdi, orada en son sürümlerde, yalnızca cv2
modül var, ve cv
cv2
içinde bir alt sınıfıdır. import cv2.cv as cv
erişim aramalısın.)
cv2:
Ve en son cv2
. Bu, her şeyi ndarray
native Python
NumPy
nesneleri*23,*,dictionary
, **24 vb gibi bir nesne olarak döndürülür. Yani bu NumPy desteği sayesinde, herhangi bir numpy işlemi burada yapabilirsiniz. NumPy
son derece güçlü ve etkili bir dizi işleme bir kütüphane.
Bir resim yüklerseniz, örneğin, ndarray
bir döndürülür.
array[i,j]
(i,j) piksel değeri pozisyon verir.
Ayrıca, imageROİ için, dizi Dilimleme ROI=array[c1:c2,r1:r2]
gibi kullanılabilir. Ayrı fonksiyonları gerek yok.
İki resim eklemek için herhangi bir işlev çağrısı için bir gerek yok, yap res = img1 img2
. (Ama NumPy ayrıca görüntüleri gibi uint8 diziler için modül bir işlemdir. Makaleye bakınDifference between Matrix Arithmetic in OpenCV and Numpydaha çok bilmek.
Hatlarını iade Numpy diziler listesi. Kontür hakkında ayrıntılı bir tartışma bulabilirsinizContours - 1 : Getting Started.
Cv2 ile kısacası, her şey basit ve oldukça hızlı.
cv2
hızlandırmak NumPy nasıl basit bir tartışma Yığın Taşması söz konusudurPerformance comparison of OpenCV-Python interfaces, cv and cv2.
pyopencv:
Kullanmadım beri bu konuda pek bir şey bilmiyorum. Ama daha da geliştirilmesi durmuş gibi görünüyor.
Daha resmi kütüphaneler için sopa olacağını düşünüyorum.
Kısacası, cv2 kullanmanızı tavsiye ederim!
EDİT: cv2
Bu modül için yükleme işlemi görebilirsinizInstall OpenCV in Windows for Python.
Ne fark var arasında alma ve #Objectiv...
`==` Ve `` Python ile arasında bir far...
Arasında ne fark vardır "JPG"...
Android için Media Player ve VideoView...
@Staticmethod ve @Python classmethod a...