#include<highgui.h>
#include<cv.h>
#include<stdio.h>
//#include<iostream>
//鼠标事件
CvPoint down;
CvPoint up;
CvRect rect;
IplImage *dst;
void on_mouse(int event,int x,int y,int flags,void *param)
{
//鼠标事件分为两个部分,左键按下和左键弹起
IplImage *image=(IplImage *)param;
if (event == CV_EVENT_LBUTTONDOWN) //左键按下
{
down.y=y;
down.x=x;
printf("%d %d",down.x,down.y);
cvDestroyWindow("image.roi");
cvReleaseImage(&dst);
}
if (event==CV_EVENT_LBUTTONUP)//左键弹起
{
up.y=y;
up.x=x;
// cvRectangle(image,down,up,cvScalarAll(0),1,8,0);
if( (up.y > down.y) && (up.x > down.x))//避免出现错误
{
rect.x=down.x;
rect.y=down.y;
rect.height=up.y-down.y;
rect.width=up.x-down.x;
printf(" %d %d\n",up.x,up.y);
cvSetImageROI(image,rect);//设置掩膜
dst=cvCloneImage(image);//复制图片
cvNamedWindow("image.roi",CV_WINDOW_AUTOSIZE);
cvShowImage("image.roi",dst);
}
}
}
int main(int argc,char **argv)
{
IplImage *image;
image=cvLoadImage("1.bmp",1);
cvNamedWindow("image",CV_WINDOW_AUTOSIZE);
cvShowImage("image",image);
cvSetMouseCallback("image",on_mouse,(void *)image);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&image);
return 0;
}
分享到:
相关推荐
给出了在opencv中使用鼠标获取图像的位置信息和颜色信息。开发环境为VC6.0、OpenCv1.0.测试通过,完全可用。
本资源包含基于C++的OpenCV3.3图像处理源码及素材整理 包含以下源码及用到所有素材文件: 实例1:opencv对单张DCM文件的读取并显示 实例2:opencv读取DCM图像并另存为JPG图像 实例3:opencv批量读取指定路径DCM图像...
在本节中,您将学习OpenCV内部的不同图像处理函数。 • 特征检测与描述 在本节中,您将学习有关特征检测和描述符的信息 • 视频分析 在本部分中,您将学习与对象跟踪等视频配合使用的不同技术。 • 相机校准和3D重建...
通过运行这段代码,您可以学习如何在OpenCV中使用鼠标事件处理函数,以及在图像上捕获和处理鼠标事件的基本步骤。无论是对鼠标事件处理感兴趣的初学者还是有一定编程经验的人,都可以从这个示例代码中获取有用的经验...
使用VS2013+opencv获取鼠标左键点击位置图像的像素值。
高效性能:OpenCV代码经过高度优化,能够利用多核CPU、GPU以及特定硬件加速(如Intel IPP、OpenCL等),实现高速图像处理和实时计算机视觉应用。 多语言支持:尽管OpenCV主要使用C++编写,但它提供了丰富的API...
Opencv和VS进行图像处理过程中用到鼠标回调,然后显示鼠标左键在图像中点击的坐标值,这在图像处理中需要用到鼠标选择区域或者矩形等特征有很大的帮助
采用QT5.0与openCV编程,调用摄像头获取动态图像,并可通过鼠标操作实现图像的颜色操作与轮廓识别,可用于视觉决策。
高效性能:OpenCV代码经过高度优化,能够利用多核CPU、GPU以及特定硬件加速(如Intel IPP、OpenCL等),实现高速图像处理和实时计算机视觉应用。 多语言支持:尽管OpenCV主要使用C++编写,但它提供了丰富的API...
利用opencv的多目标追踪算法,实现对视频中鼠标选取的多个对象进行跟踪处理,算法可以自行选择,现为kcf算法
最近整理了Opencv的学习内容实现代码,每个代码都在本机上运行通过的,通过这些程序,可以实现某些经典的功能,也可以对Opencv有个熟悉学习的过程. (1)图片的读取和写入功能实现代码; (2)对像素值的赋值实现代码; ...
当图像太大时,在特定的窗口内无法完全显示图像的内容。 此时只要用鼠标拖动图像可见部分的任一点,就可以扩大显示图像内容。 测试环境为VC6.0和Opencv1.0
高效性能:OpenCV代码经过高度优化,能够利用多核CPU、GPU以及特定硬件加速(如Intel IPP、OpenCL等),实现高速图像处理和实时计算机视觉应用。 多语言支持:尽管OpenCV主要使用C++编写,但它提供了丰富的API...
DFT这个技术手段是将空间域映射到频率域中去,在图像处理有着举足轻重的地位。这里我们只是得到其变换的结果并看看贫域图有什么特点。 实验功能: 单击Open Image按钮,手动选择打开一副图片,不管其是否是彩色...
医疗影像分析:在医疗领域,OpenCV可用于医学图像处理、病灶检测、诊断辅助等应用。 自动驾驶:在车辆视觉感知系统中,OpenCV用于道路标志识别、障碍物检测、车道线识别等任务。 多媒体应用:如图像编辑软件、...
应用QT QGraphicsview 显示图片,并加入了鼠标事件获取图片像素坐标,利用鼠标绘制矩形框选图片选区,选择的...本案例适用于利用QT+OpenCV综合开发图像处理相关应用程序,以及利用QGrapjicsView显示图片的相关案例。
高效性能:OpenCV代码经过高度优化,能够利用多核CPU、GPU以及特定硬件加速(如Intel IPP、OpenCL等),实现高速图像处理和实时计算机视觉应用。 多语言支持:尽管OpenCV主要使用C++编写,但它提供了丰富的API...
最近整理了Opencv的学习内容实现代码,每个代码都在本机上运行通过的,通过这些程序,可以实现某些经典的功能,也可以对Opencv有个熟悉学习的过程. (1)图片的读取和写入功能实现代码; (2)对像素值的赋值实现代码; ...
最近整理了Opencv的学习内容实现代码,每个代码都在本机上运行通过的,通过这些程序,可以实现某些经典的功能,也可以对Opencv有个熟悉学习的过程. (1)图片的读取和写入功能实现代码; (2)对像素值的赋值实现代码; ...