如何用opencv (c++)捕捉鼠标点击位置
2014-04-29 10:11
351 查看
这段代码的功能是:显示图片,并捕捉鼠标在图片上的点击位置。
(该功能常用于 标注图片数据,是获取机器学习的样本数据的第一步)
#include <opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
//三个全局变量
IplImage *src;
CvPoint points[6];
int pn = 0;
const char * ff;
//捕捉鼠标位置
void on_mouse( int event, int x, int y, int flags, void* ustc)
{
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5, 0, 1, CV_AA);
if( event == CV_EVENT_LBUTTONDOWN )
{
CvPoint pt = cvPoint(x,y);
char temp[16];
sprintf(temp,"(%d,%d)",pt.x,pt.y);
cvPutText(src,temp, pt, &font, cvScalar(255, 255, 255, 0));
cvCircle( src, pt, 2,cvScalar(255,0,0,0) ,CV_FILLED, CV_AA, 0 );
cvShowImage( ff, src );
points[pn++] = pt;
//再次控制要获取的鼠标点的个数
if (pn >= 6){
cvShowImage(ff,src);
cvWaitKey(0);
cvDestroyWindow(ff);
cvReleaseImage(&src);
pn=0;
}
}
}
//主函数,遍历并显示图片,调用函数捕捉捕捉鼠标位置。
int enumerateImages(){
string f = "D:\\test2\\reg\\0.jpg";
ff = f.c_str();
src = cvLoadImage(ff);
cvShowImage(ff,src);
cvSetMouseCallback( ff, on_mouse, 0 );
cvWaitKey(0);
return -1;
}
(该功能常用于 标注图片数据,是获取机器学习的样本数据的第一步)
#include <opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
//三个全局变量
IplImage *src;
CvPoint points[6];
int pn = 0;
const char * ff;
//捕捉鼠标位置
void on_mouse( int event, int x, int y, int flags, void* ustc)
{
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5, 0, 1, CV_AA);
if( event == CV_EVENT_LBUTTONDOWN )
{
CvPoint pt = cvPoint(x,y);
char temp[16];
sprintf(temp,"(%d,%d)",pt.x,pt.y);
cvPutText(src,temp, pt, &font, cvScalar(255, 255, 255, 0));
cvCircle( src, pt, 2,cvScalar(255,0,0,0) ,CV_FILLED, CV_AA, 0 );
cvShowImage( ff, src );
points[pn++] = pt;
//再次控制要获取的鼠标点的个数
if (pn >= 6){
cvShowImage(ff,src);
cvWaitKey(0);
cvDestroyWindow(ff);
cvReleaseImage(&src);
pn=0;
}
}
}
//主函数,遍历并显示图片,调用函数捕捉捕捉鼠标位置。
int enumerateImages(){
string f = "D:\\test2\\reg\\0.jpg";
ff = f.c_str();
src = cvLoadImage(ff);
cvShowImage(ff,src);
cvSetMouseCallback( ff, on_mouse, 0 );
cvWaitKey(0);
return -1;
}
相关文章推荐
- VB.Net WebBrowser如何取得鼠标点击位置的标签
- 利用opencv获取鼠标左键点击位置图像的像素值
- 鼠标在slide控件的任意位置上点击,滑块滑动到该位置是如何实现的,有什么属性吗?
- OpenCV记录鼠标左键点击位置
- 如何让层在鼠标在层外的位置点击时隐藏
- 技术转载(鼠标点击X窗口关闭IE的同时清空session,最基本的就是处理用户重复登陆需要用到,我想这个的关键在于如何捕捉到关闭IE这个动作,之后再根据自身的需要使用session.invalidate()或者session.removeAttribute( "xxx "))
- trackBar控件如何使滑块的位置为鼠标点击的位置
- 如何知道鼠标点击的statusbar的位置
- DevExpress PopMenu 如何在鼠标点击的位置显示右键菜单
- opencv学习笔记11 在图片中添加文字,点击鼠标显示位置坐标
- Unity中物体如何移动到鼠标点击位置
- OpenCV—利用回调函数实现返回鼠标点击位置的坐标和灰度值
- jquery判断鼠标点击的位置是否在规定的div范围内部
- 在tableView或者collectionView里如何获得被点击的cell的下标位置
- OpenGL中如何实现通过鼠标点击选取对象(正交投影)
- Unity中获取鼠标位置,且点击鼠标右键则在点击位置显示物体
- Opencv:Microsoft C++ 异常: 内存位置 0x002af444 处的 cv::Exception
- JavaScript 获取鼠标点击位置坐标
- JavaScript 获取鼠标点击位置坐标
- js 如何判断鼠标点击事件还是js代码调用