Opencv

2012-09-07 27 views
5

ile grid çizgilerinin sabit setinin çizilmesi, opencv örnek dosyasındaki renk algılama örneğinin çıktısına karşı, tüm kesişme noktalarında tanımlı noktalar ile kullanıcı tanımlı ızgara çizgilerinin çizilmesi mümkün mü? Temel olarak, web kamerasının üst kısımdan insan kafası ve omuzları tespit etmesi gerekecektir. Daha sonra bir kişi tespit edildiğinde, oradaki ızgara çizgilerine ihtiyacım var, böylece en dıştaki ızgaradan (sol omuz), bir sonraki en dıştaki ızgaraya (sağ omuz), hem x hem de y ekseninde (alın ve kafanın arka tarafı). Bundan sonra, bu noktaların aktüatör ve valfler gibi mekanik parçaların çalışması için gönderilmesi gerekmektedir. ben şimdi gerçekten çaresizim cozOpencv

Gerçekten ..,

Thx herhangi bir yardım takdir edecektir!

Giriş seviyesi opencv kullanıcısıyım, C++ ile çalışmayla ilgili yeni başlayanların bilgisi. Şu anda VS2008'de opencvV2.1 kullanıyorum.

cevap

3

Sorununuzun gerçekte ne olduğunu söylemek zor.

Sadece kılavuz çizgilerini çizmek isterseniz, bunun için opencv işlevi yoktur. Kılavuzdaki çizgileri çizmek için, bir döngü içinde cv::line'u kullanabilir, ardından iç içe döngü ile kesişimleri çizebilirsiniz. OpenCV bekleme fonksiyonu kullanan görüntü üzerinde bir kılavuz çekme için

// assume that mat.type=CV_8UC3 

dist=50; 

int width=mat.size().width; 
int height=mat.size().height; 

for(int i=0;i<height;i+=dist) 
    cv::line(mat,Point(0,i),Point(width,i),cv::Scalar(255,255,255)); 

for(int i=0;i<width;i+=dist) 
    cv::line(mat,Point(i,0),Point(i,height),cv::Scalar(255,255,255)); 

for(int i=0;i<width;i+=dist) 
    for(int j=0;j<height;j+=dist) 
    mat.at<cv::Vec3b>(i,j)=cv::Scalar(10,10,10); 
0

Mat mat_img(image); 
int stepSize = 65; 

int width = mat_img.size().width; 
int height = mat_img.size().height; 

for (int i = 0; i<height; i += stepSize) 
    cv::line(mat_img, Point(0, i), Point(width, i), cv::Scalar(0, 255, 255)); 

for (int i = 0; i<width; i += stepsSize) 
    cv::line(mat_img, Point(i, 0), Point(i, height), cv::Scalar(255, 0, 255));