一个回调鼠标函数的例子,基于OpenCV2,比起网上一些基于OpenCV1的例子简单、明了许多。
#include
//鼠标回调函数
void my_mouse_callback(int event, int x, int y, int flags, void* param);
//保存绘制所用的点
cv::Point pt;
cv::Point pt1;
//判断是否绘制
bool t = false;
int main(int argc, char *argv[])
{//原图片cv::Mat image = cv::imread("0001.jpg");cv::imshow("原图", image);//注册鼠标回调函数cvSetMouseCallback("原图",my_mouse_callback); //循环while (1){if (t){//重新读取图片cv::Mat image = cv::imread("0001.jpg");//画圆,蓝色cv::circle(image, pt, 20, cv::Scalar(255, 0, 0));//画矩形,绿色cv::rectangle(image, cv::Rect(pt, pt1), cv::Scalar(0, 255, 0));imshow("原图", image);t = false;}//按ESC键退出循环if (cv::waitKey(100) == 27)break;}
}
//鼠标回调函数
void my_mouse_callback(int event, int x, int y, int flags, void* param)
{switch (event){//左键按下case CV_EVENT_LBUTTONDOWN:{t = true;//保存当前点pt = cv::Point(x, y);pt1 = cv::Point(x, y);break;}//左键抬起case CV_EVENT_LBUTTONUP:{t = true;//保存当前点pt1 = cv::Point(x, y);break;}}
}
OpenCV2系列
- OpenCV2帧间差分检测运动目标
- OpenCV2从摄像头获取帧并写入视频文件
- OpenCV相机标定
- OpenCV检测图像SURF特征
- OpenCV特征点检测
- Opecv霍夫变换检测直线
- OpenCV拉普拉斯变换
- 图像分割:Grabcut算法小程序
- Opencv2相似图像检索
- OpenCV2应用Meanshift查找相似物体
- OpenCV查找表应用
- OPENCV人脸检测实现
- Opencv2打开摄像头并显示图像