ProgRoman 9 Жалоба Опубликовано September 8, 2011 Добрый день вот написал вроде бы обычный обработчик тыкаю по изображению мышкой и должны появляться круги разного цвета, но что-то ничего не появляется подскажите что не так #include "stdafx.h" #include <opencv2/video/tracking.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #include <ctype.h> using namespace cv; using namespace std; Mat img = Mat::zeros(640,480,CV_8UC3); const int num_features = 2; struct TFeature { Point pt;//int pt[num_features]; int value; }; typedef vector<TFeature> TFeatureList; TFeatureList points; void Update(void) { cout<<"------\n"; for(int i=0; i<points.size(); i++) { if(points[i].value == 0) { circle(img,points[i].pt,3,CV_RGB(0,255,0),1); } else { circle(img,points[i].pt,3,CV_RGB(255,0,0),1); } cout<<i<<" : "<<points[i].pt.x<<" ; "<<points[i].pt.y<<" = "<<points[i].value<<"\n"; } } void on_mouse(int event, int x, int y, int , void* ) { if(img.empty()) return; //if(img.) TFeature pts; if(event == CV_EVENT_LBUTTONDOWN) { pts.pt = Point(x,y); pts.value = 0; points.push_back(pts); img = Mat::zeros(640,480,CV_8UC3); Update(); } if( event == CV_EVENT_RBUTTONDOWN) { pts.pt = Point(x,y); pts.value = 1; points.push_back(pts); img = Mat::zeros(640,480,CV_8UC3); Update(); } } int main( int argc, char** argv ) { namedWindow("test",1); setMouseCallback("test",on_mouse,0); imshow("test",img); waitKey(0); return 0; } Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано September 8, 2011 Конечно не появятся, нужно бы зациклить программу. Что-то типа такого: ... int c=0; for(;c!='q' { imshow("test",img); c=waitKey(10); } ... [/code] т.к. события обрабатываются в функции waitKey. И еще, несколько раз сам попадался по невнимательности на том, что если не вызывать waitKey, то окно с изображением обновляться не будет, и кажется, что программа ничего не делает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgRoman 9 Жалоба Опубликовано September 8, 2011 спасибо большое всё действительно получилось Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах