OpenCV 鼠标响应函数 ,用鼠标选中一块图像区域,然后计算选中的ROI区域的统计直方图
2014-04-25 21:56
375 查看
OpenCV 鼠标响应函数 ,用鼠标选中一块图像区域,然后计算选中的ROI区域的统计直方图
运行的时候,在弹出的图像中按下鼠标左键,拖动鼠标,拉出一块矩形区域,然后松开左键,则图像区域就被选中
鼠标响应函数:
static void onMouse( int event, int x, int y, int, void* )
{
if( selectObject ) //鼠标左键被按下后,该段语句开始执行
{ //按住左键拖动鼠标的时候,该鼠标响应函数
//会被不断的触发,不断计算目标矩形的窗口
selection.x = MIN(x, origin.x);
selection.y = MIN(y, origin.y);
selection.width = std::abs(x - origin.x);
selection.height = std::abs(y - origin.y);
selection &= Rect(0, 0, image.cols, image.rows);
}
switch( event )
{
case CV_EVENT_LBUTTONDOWN:
origin = Point(x,y);
selection = Rect(x,y,0,0);
selectObject = true; //当在第一帧按下鼠标左键后,被置为true,拖动鼠标,开始选择目标的矩形区域
break;
case CV_EVENT_LBUTTONUP:
selectObject = false;//直到鼠标左键抬起,标志着目标区域选择完毕。selectObject被置为false
if( selection.width > 0 && selection.height > 0 )
calculateHist = 1; //当在第一帧用鼠标选定了合适的目标跟踪窗口后,calculateHist的值置为 1
cout<<"选中的矩形区域为: "<<selection<<endl;
break;
}
}
运行的时候,在弹出的图像中按下鼠标左键,拖动鼠标,拉出一块矩形区域,然后松开左键,则图像区域就被选中
鼠标响应函数:
static void onMouse( int event, int x, int y, int, void* )
{
if( selectObject ) //鼠标左键被按下后,该段语句开始执行
{ //按住左键拖动鼠标的时候,该鼠标响应函数
//会被不断的触发,不断计算目标矩形的窗口
selection.x = MIN(x, origin.x);
selection.y = MIN(y, origin.y);
selection.width = std::abs(x - origin.x);
selection.height = std::abs(y - origin.y);
selection &= Rect(0, 0, image.cols, image.rows);
}
switch( event )
{
case CV_EVENT_LBUTTONDOWN:
origin = Point(x,y);
selection = Rect(x,y,0,0);
selectObject = true; //当在第一帧按下鼠标左键后,被置为true,拖动鼠标,开始选择目标的矩形区域
break;
case CV_EVENT_LBUTTONUP:
selectObject = false;//直到鼠标左键抬起,标志着目标区域选择完毕。selectObject被置为false
if( selection.width > 0 && selection.height > 0 )
calculateHist = 1; //当在第一帧用鼠标选定了合适的目标跟踪窗口后,calculateHist的值置为 1
cout<<"选中的矩形区域为: "<<selection<<endl;
break;
}
}
相关文章推荐
- 读取图片,并通过鼠标交互,在图片上选择一块矩形区域,然后把这个矩形区域的子图像显示出来
- Python OpenCV学习笔记之:计算彩色图像各通道的直方图及图像区域直方图
- OpenCV复制一个或多个ROI图像区域
- 【OpenCV】通过ROI区域以及掩码实现图像叠加
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- opencv图像直方图的计算及绘制
- 【OpenCV】通过ROI区域以及掩码实现图像叠加
- opencv实现灰度图像的直方图点计算以及灰度直方图显示
- 【OpenCV】复制、切割出图像ROI区域
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 基础学习笔记之opencv(19):有关图像序列的直方图计算
- opencv学习之(五)-直方图计算和绘制图像直方图
- opencv图像处理之鼠标事件(矩形roi绘图)
- VTK修炼之道29:图像统计_彩色直方图计算
- !!【OpenCV学习】计算两幅图像的重叠区域