本章内容
1. imshow鼠标时间捕获
1.鼠标事件实验
输出结果:
程序源码
#include<opencv2/opencv.hpp>
#include<iostream>void onMouse(int event, int x, int y, int flags, void* param); // 鼠标事件响应槽函数
cv::String winTitle = "input Image";int main(int argc, char** argv) {
/* 本章内容
1. 鼠标时间捕获*/
cv::String fileName = "/home/wang/dev/Image/mv.jpeg";
cv::Mat src = cv::imread(fileName);
if(src.data == NULL ){
std::cout << "文件读入失败" << std::endl;
return -1;
}
cv::imshow(winTitle, src);
int key;
while(1){
key = cv::waitKey(20);
if(('q' == key)||('Q' == key)){
std::cout << "退出系统" << std::endl;
break;
}
cv::setMouseCallback(winTitle,onMouse);
}
return 0;
}void onMouse(int event, int x, int y, int flags, void* param){
switch(event){
case cv::EVENT_LBUTTONDOWN:
std::cout << "鼠标左键按下" << std::endl;
break;
case cv::EVENT_MOUSEMOVE:
std::cout << "鼠标移动" << std::endl;
break;
case cv::EVENT_LBUTTONUP:
std::cout << "鼠标左键抬起" << std::endl;
break;
default:
break;
}
}