您的位置:首页 > 其它

4:在图像上通过鼠标交互,画三条线段并显示出来。

2014-07-11 15:04 357 查看
// DrawLine.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "cv.h"
#include "cvaux.h"
#include "highgui.h"
IplImage* srcImg;
CvPoint startPoint, endPoint;
bool flag = false;
void on_mouse(int event, int x, int y, int flags, void* param)
{
switch (event)
{
case CV_EVENT_LBUTTONDOWN:
startPoint = cvPoint(x, y);
flag = true;
break;
case CV_EVENT_MOUSEMOVE:
if (flag)
{
IplImage* tempImg = cvCloneImage(srcImg);
cvLine(tempImg, startPoint, cvPoint(x, y),CV_RGB(255,0,0));
cvShowImage("cvWnd1", tempImg);
cvReleaseImage(&tempImg);
}
break;
case CV_EVENT_LBUTTONUP:
cvLine(srcImg, startPoint, cvPoint(x, y), CV_RGB(255, 0, 0));
cvShowImage("cvWnd1", srcImg);
flag = false;
break;
default:
break;
}
}

int _tmain(int argc, _TCHAR* argv[])
{
srcImg = cvLoadImage("src.bmp", 1);
cvNamedWindow("cvWnd1", 1);
cvShowImage("cvWnd1", srcImg);
cvSetMouseCallback("cvWnd1", on_mouse, 0);
cvWaitKey(0);
cvDestroyWindow("cvWnd1");
cvReleaseImage(&srcImg);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐