在OpenCV中利用鼠标绘制直线
2014-01-11 22:49
375 查看
原文
鼠标绘制直线源代码:
鼠标绘制直线源代码:
#include <cv.h> #include <highgui.h> #include <stdio.h> #pragma comment( lib, "cv.lib" ) #pragma comment( lib, "cxcore.lib" ) #pragma comment( lib, "highgui.lib" ) IplImage* src = 0; IplImage* dst = 0; void on_mouse( int event, int x, int y, int flags, void* ustc) { static CvPoint pre_pt = {-1,-1}; static CvPoint cur_pt = {-1,-1}; CvFont font; cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5, 0, 1, CV_AA); char temp[16]; if( event == CV_EVENT_LBUTTONDOWN ) { cvCopy(dst,src); sprintf(temp,"(%d,%d)",x,y); pre_pt = cvPoint(x,y); cvPutText(src,temp, pre_pt, &font, cvScalar(0,0, 0, 255)); cvCircle( src, pre_pt, 3,cvScalar(255,0,0,0) ,CV_FILLED, CV_AA, 0 ); cvShowImage( "src", src ); cvCopy(src,dst); } else if( event == CV_EVENT_MOUSEMOVE && (flags & CV_EVENT_FLAG_LBUTTON)) { cvCopy(dst,src); sprintf(temp,"(%d,%d)",x,y); cur_pt = cvPoint(x,y); cvPutText(src,temp, cur_pt, &font, cvScalar(0,0, 0, 255)); cvLine(src, pre_pt, cur_pt, cvScalar(0,255,0,0), 1, CV_AA, 0 ); cvShowImage( "src", src ); } else if( event == CV_EVENT_LBUTTONUP ) { sprintf(temp,"(%d,%d)",x,y); cur_pt = cvPoint(x,y); cvPutText(src,temp, cur_pt, &font, cvScalar(0,0, 0, 255)); cvCircle( src, cur_pt, 3,cvScalar(255,0,0,0) ,CV_FILLED, CV_AA, 0 ); cvLine( src, pre_pt, cur_pt, cvScalar(0,255,0,0), 1, CV_AA, 0 ); cvShowImage( "src", src ); cvCopy(src,dst); } } int main() { src=cvLoadImage("lena.jpg",1); dst=cvCloneImage(src); cvNamedWindow("src",1); cvSetMouseCallback( "src", on_mouse, 0 ); cvShowImage("src",src); cvWaitKey(0); cvDestroyAllWindows(); cvReleaseImage(&src); cvReleaseImage(&dst); return 0; }
相关文章推荐
- 利用鼠标绘制矩形和截取图像的矩形区域并保存(OpenCV2.4.5)
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- opencv鼠标绘制直线 C++版
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- OpenCV学习笔记(18):在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- Opencv中利用鼠标绘制矩形
- 利用OpenCV绘制可变直线
- 用鼠标左键绘制折线,利用鼠标中键或右键终止绘制
- opencv学习心得(一)鼠标响应事件绘制轮廓
- Android: 利用SurfaceView绘制股票滑动直线解决延迟问题
- 【OpenCV】通过鼠标在图像中绘制RotatedRect旋转矩形
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- 在MFC中,利用GDI绘制橡皮筋效果-直线,圆,椭圆,矩形
- Android入门——利用Canvas完成绘制点、圆、直线、路径、椭圆、多边形等2D图形
- 在MFC下绘制直线,使用橡皮筋技术,可以使直线效果跟随鼠标移
- opencv鼠标绘制矩形和截取图像的矩形区域
- OpenCV学习九:绘制直线、矩形、椭圆、原型、填充任意图形