Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

OPENCV İLE OTOMATİK ARABA PLAKA TANINMASI

Benzer bir sunumlar


... konulu sunumlar: "OPENCV İLE OTOMATİK ARABA PLAKA TANINMASI"— Sunum transkripti:

1

2 OPENCV İLE OTOMATİK ARABA PLAKA TANINMASI

3 OPEN CV NEDİR? 1.OpenCv nin anlamı Açık Kaynak Bilgisayarlı Görme Kütüphanesidir. (Intel® Open Source Computer Vision Library) 2.Çoğu popüler resim işleme ve bilgisayarlı görü algoritmalarını işleyen C ve biraz da C++ fonksiyonlarının toplamıdır

4 ANAHTAR ÖZELLİKLERİ Karşı platformlar için orta seviyeden yüksek seviyeye 300 den fazla C ve C++ ile yazılmış API vardır. OpenCv hem ticari hem ticari olmayan kullanımlar için ücretsizdir. (Tabii ki kimden aldıgınızı söylerseniz!)

5 OPEN CV DE TEMEL YAPILAR
CvPoint 2D point with integer coordinates typedef struct CvPoint { int x; int y; } CvPoint; /*Yapıcı fonksiyon*/ inline CvPoint cvPoint( int x, int y ); Örnek: CvPoint point = cvPoint(3,4);

6 CvSize pixel-accurate size of a rectangle typedef struct CvSize { int width; /* dikdörtgen genişliği */ int height; /* dikdörtgen boyu */ } CvSize; /* Yapıcı fonksiyon */ inline CvSize cvSize( int width, int height ); Örnek: CvSize size = cvSize(3,4);

7 CvRect offset and size of a rectangle typedef struct CvRect { int x; /* sol üst köşe koordinatı int y; /* sol üst köşe koordinatı int width; /* dikdörtgen genişliği */ int height; /* dikdörtgen boyu */ } CvRect; /* Yapıcı fonksiyon */ inline CvRect cvRect( int x, int y, int width, int height ); Örnek: CvRect rect = cvRect(3,4,5,6); printf("x : %d y: %d\n",rect.x,rect.y); printf("w :%d h:%d\n",rect.width,rect.height);

8 (En çok kullanılan temel yapılardan biri!!!)
IplImage typedef struct _IplImage { int nSize; /* sizeof(IplImage) */ int ID; /* version (=0)*/ int nChannels; int alphaChannel; /* ignored by OpenCV */ int depth; char colorModel[4]; char channelSeq[4]; int dataOrder; int origin; int align; int width; int height; struct _IplImage *maskROI; void *imageId; struct _IplTileInfo *tileInfo; int imageSize; char *imageData; /* pointer to aligned image data int widthStep; /* size of aligned image row in bytes */ int BorderMode[4]; int BorderConst[4]; char *imageDataOrigin; } IplImage; Örnek: IplImage* image = cvLoadImage("resim.bmp",0);

9 OPENCV ÖRNEKLERİ

10 #include "stdafx.h" #include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { IplImage* img = 0; int height,width,step,channels; uchar *data; int i,j,k; char* rice = "rice.tif"; // load an image img=cvLoadImage(rice,-1); if(!img){ printf("Could not load image file: %s\n",argv[1]); exit(0); } // get the image data height = img->height; width = img->width;

11 step = img->widthStep;
channels = img->nChannels; data = (uchar *)img->imageData; printf("Processing a %dx%d image with %d channels\n",height,width,channels); // create a window cvNamedWindow("mainWin",CV_WINDOW_AUTOSIZE); cvMoveWindow("mainWin", 100, 100); // invert the image for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++) data[i*step+j*channels+k]=255-data[i*step+j*channels+k]; // show the image cvShowImage("mainWin", img ); // wait for a key cvWaitKey(0); // release the image cvReleaseImage(&img ); return 0; }

12 ŞİMDİ DE PİRİNÇ SAYALIM…

13 #include "stdafx.h" #include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { IplImage* src; //binary resim olmak zorunda ve //siyah zemin üzerinde beyazlar üzerinde işlem yapar!! src=cvLoadImage("rice.tif",-1); IplImage* dst = cvCreateImage( cvGetSize(src), 8, 1 ); CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* contour = 0; cvThreshold( src, src, 110, 255, CV_THRESH_BINARY );

14 cvNamedWindow( "Source", 0 );
cvShowImage( "Source", src ); int no =cvFindContours( src, storage, &contour, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE ); cvZero( dst ); for( ; contour != 0; contour = contour->h_next ) { CvScalar colorI = CV_RGB( 0, 255, 0 ); CvScalar colorE = CV_RGB( 0, 0, 255 ); cvDrawContours( dst, contour, colorE, colorI, 0, 1, 8 ); } printf("number of contours : %d\n",no); cvNamedWindow( "Components", 0 ); cvShowImage( "Components", dst ); cvWaitKey(0); return 0;

15 80 tane çıktı (oldukça iyi!!!)

16 PLAKA TANINMASI Plaka tanıma sistemi park ücretlendirme,
yol görüntüleme, güvenlik sistemleri gibi birçok uygulamada önemli rol oynar. Bu projede genel olarak ilk aşamada Türk Plakaları incelenmiştir Kullanılan yöntem aşağıda verilmiştir.

17

18

19

20 Kurban bayramınızı şimdiden kutlar
nice bayramlara vesile olmasını dilerim…


"OPENCV İLE OTOMATİK ARABA PLAKA TANINMASI" indir ppt

Benzer bir sunumlar


Google Reklamları