Quantcast
Channel: OpenCV Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 41027

mouse click and draw circle

$
0
0
Hi My topic is draw circle with mouse click method I click 3 points on the image and draw circle I have got a code for drawing circle with given three points but my code is not working this code for draw circel wiht 3 points Mat cember_denklemi(Point2f A,Point2f B,Point2f C) { double W[3][3]={{A.x,A.y,1}, {B.x,B.y,1}, {C.x,C.y,1}}; double T[3][1]={-(A.x*A.x+A.y*A.y), -(B.x*B.x+B.y*B.y), -(C.x*C.x+C.y*C.y)}; Mat M=Mat(3,3,CV_64F,W); Mat N=Mat(3,1,CV_64F,T); Mat L=M.inv()*N; return L; } and this is my code, #include #include #include #include #include using namespace std; using namespace cv; static int mouse_x = -1; static int mouse_y = -1; Mat circle_eq(Point2f A,Point2f B,Point2f C) { double W[3][3]={{A.x,A.y,1}, {B.x,B.y,1}, {C.x,C.y,1}}; double T[3][1]={-(A.x*A.x+A.y*A.y), -(B.x*B.x+B.y*B.y), -(C.x*C.x+C.y*C.y)}; Mat M=Mat(3,3,CV_64F,W); Mat N=Mat(3,1,CV_64F,T); Mat L=M.inv()*N; return L; } void mouseKordinat(int evt, int x, int y, int flags, void* ptr) { if(evt == CV_EVENT_MOUSEMOVE) { mouse_x = x; mouse_y = y; } int tik; tik = tik + 1; } void getPixelValue(Mat img, int x, int y); Mat image; int main() { image = imread("c:/qwz/1q.jpg"); imshow("MyWindow", image); setMouseCallback("MyWindow", mouseKordinat, 0 ); tik = tik%=3; if(tik==0) { int merkez=circle_eq(nokta(0), nokta(1), nokta(2)); circle(image,merkez,3, Scalar(255,255,255),-1,8, nokta(0)); } if(tik>3) { int nokta[0][0]=0; } waitKey(0); return 0; } void mouseKordinat(int evt, int c, int r, int flags, void* ptr) { if(evt==CV_EVENT_LBUTTONDOWN) { getPixelValue(image,r,c); } } void getPixelValue(Mat img, int r, int c) { Vec3b pix=img.at(r,c); int B = pix.val[0]; int G = pix.val[1]; int R = pix.val[2]; cout<<"Row:"<

Viewing all articles
Browse latest Browse all 41027

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>