ctypes-opencv.

Python-Wrapper für OpenCV mit Ctypes
Jetzt downloaden

ctypes-opencv. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • BSD License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Minh-Tri Pham
  • Website des Verlags:
  • http://code.google.com/u/pmtri80/

ctypes-opencv. Stichworte


ctypes-opencv. Beschreibung

Python-Wrapper für OpenCV mit Ctypes ctypes-opencv ist eine Bibliothek, die von Intel Open Source Computer Vision Library (OpenCV) zu Python bringt. OpenCV ist eine Sammlung von Algorithmen und Beispielcode für verschiedene Computer-Vision-Probleme. Das Ziel der ctypes-opencv ist Python Zugriff auf alle dokumentierten Funktionalität von OpenCV.Advantages bereitzustellen:. * Preis Schnittstelle zu OpenCV der CXCORE, CV, HighGUI Komponenten * Pythonic Schnittstelle. OpenCV Die Objekte werden sicher gelöscht, wenn sie nicht verwendet wird. Keine Notwendigkeit zu nennen cvRelease ... (). * Reines Python-Paket. Weder C / C ++ Compiler noch Quellcode der OpenCV ist erforderlich * Unterstützung auf beiden Versionen 1.0 und 1.1 von OpenCV * Cross-Plattform, auf jedem Betriebssystem läuft das kann OpenCV installiert werden, einschließlich:.. Windows, Linux und Mac OS X. Nachteil: * Keine Unterstützung für noch ML Komponente OpenCV. Dies ist eine Einschränkung des aktuellen ctypes Pakets. Die ML-Komponente enthält meist C ++ Klassen. ctypes zur Zeit wickeln kann nicht C ++ Klassen und ihre Member-Funktionen. Diese Einschränkung wird in der Zukunft überwunden werden. Die Arbeiten haben bereits begun.Example: C-Code # ifdef _CH_ # Pragma Paket # endif # ifndef _EiC # include "cv.h" #include "highgui.h" #endifint main (int argc, char ** argv) {#define MAX_CLUSTERS 5 CvScalar color_tab ; IplImage * img = cvCreateImage (cvSize (500, 500), 8, 3); CvRNG RNG = cvRNG (-1); CvPoint ipt; color_tab = CV_RGB (255,0,0); color_tab = CV_RGB (0,255,0); color_tab = CV_RGB (100.100.255); color_tab = CV_RGB (255,0,255); color_tab = CV_RGB (255,255,0); cvNamedWindow ( "Cluster", 1); for (;;) {char Schlüssel; int k, cluster_count = cvRandInt (RNG)% MAX_CLUSTERS + 1; int i, sample_count = cvRandInt (RNG) 00 + 1; CvMat * Punkte = cvCreateMat (sample_count, 1, CV_32FC2); CvMat * Cluster = cvCreateMat (sample_count, 1, CV_32SC1); / * Stichprobe aus multigaussian Verteilung * / for (k = 0; k Breite; center.y = cvRandInt (RNG)% IMG-> Höhe; cvGetRows (Punkte, point_chunk, k * sample_count / cluster_count, k == cluster_count - 1 sample_count:? (k + 1) * sample_count / cluster_count, 1); cvRandArr (RNG, point_chunk, CV_RAND_NORMAL, cvScalar (center.x, center.y, 0,0), cvScalar (IMG-> Breite * 0,1, IMG-> Höhe * 0.1,0,0)); } / * Shuffle Proben * / for (i = 0; i data.fl + cvRandInt (RNG)% sample_count; CvPoint2D32f * pt2 = (CvPoint2D32f *) Punkte-> data.fl + cvRandInt (RNG) sample_count%; CvPoint2D32f Temp; CV_SWAP (* PT1, PT2 *, temp); } CvKMeans2 (Punkte, cluster_count, Cluster, cvTermCriteria (CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 10, 1.0)); cvZero (img); for (i = 0; i data.i ; ipt.x = (int) Punkte-> data.fl ; ipt.y = (int) Punkte-> data.fl ; cvCircle (img, ipt, 2, color_tab , CV_FILLED, CV_AA, 0); } CvReleaseMat (Punkte); cvReleaseMat (Cluster); cvShowImage ( "Cluster", img); key = (char) cvWaitKey (0); if (Schlüssel == 27 || Taste == 'q' || Taste == 'Q') // 'ESC' break; } CvDestroyWindow ( "Cluster"); Return 0;} Python codefrom opencv import * Zufälliges import randintMAX_CLUSTERS = 5if __name__ == "__main__": color_tab = img = cvCreateImage (cvSize (500, 500), 8, 3) RNG = cvRNG (-1) cvNamedWindow ( "Cluster", 1), während True: cluster_count = randint (2, MAX_CLUSTERS ) sample_count = randint (1, 1000) Punkte = cvCreateMat (sample_count, 1, CV_32FC2) Cluster = cvCreateMat (sample_count, 1, CV_32SC1) # für k im Bereich (cluster_count) Stichprobe aus multigaussian Verteilung erzeugen: center = CvPoint (cvRandInt ( RNG)% img.width, cvRandInt (RNG)% img.height) erste = k * sample_count / cluster_count last = sample_count wenn k = cluster_count: last = (k + 1) * sample_count / cluster_count wenn zuerst> = last: weiter point_chunk = cvGetRows (Punkte, erste, letzte) cvRandArr (RNG, point_chunk, CV_RAND_NORMAL, cvScalar (center.x, center.y, 0,0), cvScalar (img.width * 0,1 * img.height 0.1,0,0 )) # Shuffle Proben cvRandShuffle ( Punkte, RNG) cvKMeans2 (Punkte, cluster_count, Cluster, cvTermCriteria (CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 10, 1.0)) cvZero (img) für i im Bereich (sample_count): cluster_idx = Cluster pt = Punkte pt = cvPoint (cvRound (pt ), cvRound (pt )) cvCircle (img, pt, 2, color_tab , CV_FILLED, CV_AA, 0) cvShowImage ( "Cluster", img) key = cvWaitKey (0), wenn (key == 'x1b' oder Taste == 'q' oder Taste == 'Q'): # 'ESC' Pause Voraussetzungen: · Python


ctypes-opencv. Zugehörige Software