marsbahis kayıt marsbahis betebet giriş güvenilir casino siteleri mariobet irc forumları istanbul escort istanbul suriyeli escort escort irc forumları maltepe escort kadıköy escort pendik escort ataşehir escort ümraniye escort üsküdar escort kartal escort mersin escort fethiye escort izmir escort escort bayan
werbebanner bauzaunbanner

C++ opencv nesne tanıma

Cohen

New Member
Katılım
8 Ağu 2013
Mesajlar
1,801
Tepkime puanı
0
Puanları
0
<strong><span style="text-decoration: underline;">Cascade Sınıflandırıcı</span></strong>

<strong><span style="text-decoration: underline;">Amaç</span></strong>

<strong>Bu örnekte sizin öğrenecekleriniz:</strong>

<strong>• Bir video oynatılırken nesneleri algılamak için </strong><strong>CascadeClassifier </strong><strong>sınıfını kullanın .Özellikle biz bu fonksiyonu kullanacağız</strong>

<strong>–bir xml sınıflandırıcı dosyasını yükleyin</strong><strong>. Bu bir Haar veya LBP sınıflandırıcı olabilir</strong>

<strong>– Tanıma gerçekleştirmek için </strong><strong>detectMultiScale </strong><strong>kullanın.</strong>

<strong><span style="text-decoration: underline;">Teorisi.</span></strong>

<strong><span style="text-decoration: underline;">Kod</span></strong>

<strong>bu kodun satırları aşağıdaki gibidir isterseniz,isterseninz </strong><strong><a href= "http://code.opencv.org/svn/opencv/trunk/opencv/samples/cpp/tutorial_code/objectDetection/objectDetection.cpp">http://code.opencv.org/svn/opencv/trunk/opencv/samples/cpp/tutorial_code/objectDetection/objectDetection.cpp</a> indirebilirsiniz</strong>



<em>#include "opencv2/objdetect/objdetect.hpp"</em>

<em>#include "opencv2/highgui/highgui.hpp"</em>

<em>#include "opencv2/imgproc/imgproc.hpp"</em>

<em>#include <iostream></em>

<em>#include <stdio.h></em>

<strong>using namespace </strong>std;

<strong>using namespace </strong>cv;

<em>/** Fonksiyon Başlıkları */</em>

<strong>**** </strong>detectAndDisplay( Mat frame );

<em>/** Global değişkenler */</em>

String face_cascade_name = "haarcascade_frontalface_alt.xml";

String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";

CascadeClassifier face_cascade;

CascadeClassifier eyes_cascade;

string window_name = "Capture - Face detection";

RNG rng(12345);

<em>/** main fonksiyonu*/</em>

<strong>int </strong>main( <strong>int </strong>argc, <strong>const </strong><strong>char</strong>** argv )

{

CvCapture* capture;

Mat frame;

<em>//--1. video görüntüsü yükleniyor</em>

<strong>if</strong>( !face_cascade.load( face_cascade_name ) ){ printf("--(!)Error loading<strong>\\n</strong>"); <strong>return </strong>-1; };

<strong>if</strong>( !eyes_cascade.load( eyes_cascade_name ) ){ printf("--(!)Error loading<strong>\\n</strong>"); <strong>return </strong>-1; };

<em>//-- 2. Video görüntüsü okunuyor</em>

capture = cvCaptureFromCAM( -1 );

<strong>if</strong>( capture )

{

<strong>while</strong>( <strong>true </strong>)

{

frame = cvQueryFrame( capture );

<strong><em>//-- 3. Sınıflandırıcıyı çerveve(frame) uygulanıyor</em></strong>

if( !frame.empty() )

{ detectAndDisplay( frame ); }

else

{ printf(" --(!) No captured frame -- Break!"); break; }

int c = waitKey(10);

if( (char)c == ’c’ ) { break; }

}

}

return 0;

}

<em>/** @fonksiyon tanıma ve gösterme*/</em>

**** detectAndDisplay( Mat frame )

{

std::vector<Rect> faces;

Mat frame_gray;

cvtColor( frame, frame_gray, CV_BGR2GRAY );

equalizeHist( frame_gray, frame_gray );

<em>//-- Yüz tanınıyor</em>

face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) );

for( int i = 0; i < faces.size(); i++ )

{

Point center( faces.x + faces.width*0.5, faces.y + faces.height*0.5 );

ellipse( frame, center, Size( faces.width*0.5, faces.height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 Mat faceROI = frame_gray( faces );

std::vector<Rect> eyes;

<em>//-- Her bir yüzdeki gözleri algılar</em>

eyes_cascade.detectMultiScale( faceROI, eyes, 1.1, 2, 0 |CV_HAAR_SCALE_IMAGE, Size(30, 30) );

for( int j = 0; j < eyes.size(); j++ )

{

Point center( faces.x + eyes[j].x + eyes[j].width*0.5, faces.y + eyes[j].y + eyes[j].height*0.5 );

int radius = cvRound( (eyes[j].width + eyes[j].height)*0.25 );

circle( frame, center, radius, Scalar( 255, 0, 0 ), 4, 8, 0 );

}

}

<em>//-- Ne varsa gösterir</em>

imshow( window_name, frame );

}



<strong> </strong><strong><span style="text-decoration: underline;">Açıklama</span></strong>

<strong><span style="text-decoration: underline;">Sonuç</span></strong>

<strong><span style="text-decoration: underline;">1. </span></strong><strong>İşte yukarıdaki kodu çalıştıran ve kamera olarak bir webcam kamerası kullanan video görüntüsünün bir sonucudur:</strong><strong></strong>

<a href= "http://tinypic.com?ref=29fou88" target="_blank"><img src= "http://i50.tinypic.com/29fou88.png" alt="Image and video hosting by TinyPic" border="0" /></a>
 
senetle borç finans gündemi döviz ne kadar kripto para haberleri altın fiyatları halkalı escort avrupa yakası escort şişli escort avcılar escort esenyurt escort beylikdüzü escort beylikdüzü escort şirinevler escort ataköy escort avcılar escort esenyurt escort
Üst Alt