这是两个相关的程序,前者是后者的基础。实际上前一个程序也是在前面博文的基础上做的修改,请参考《在OpenCV中利用鼠标绘制直线》 。下面贴出代码。
程序之一,在OpenCV中利用鼠标绘制矩形
#include "stdafx.h"
#include
#include
#include
//#pragma comment( lib, "cv.lib" )
//#pragma comment( lib, "cxcore.lib" )
//#pragma comment( lib, "highgui.lib" )
#pragma comment(lib, "opencv_core247.lib" )
#pragma comment(lib, "opencv_core247d.lib" )
#pragma comment(lib, "opencv_highgui247.lib" )
#pragma comment(lib, "opencv_highgui247d.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, 2, 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