opencv MFC中的鼠标响应函数

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

方法一:

bool check_line_state=false;
IplImage* imgshow;

void on_mouse4(int event, int x,int y,int flags,void* param)
{
	int thickness=1;
	CvPoint p1,p2;
	if(event==CV_EVENT_LBUTTONDOWN)
	{
		ROI_rect.x=x;
		ROI_rect.y=y;
		check_line_state=true;
	}
	else if(check_line_state&&event==CV_EVENT_MOUSEMOVE)
	{
		p1=cvPoint(ROI_rect.x,ROI_rect.y);
		p2=cvPoint(x,y);
		cvLine(imgshow,p1,p2,CV_RGB(0,255,150),thickness,CV_AA,0);
		cvShowImage("image",imgshow);
	}
	else if(check_line_state&&event==CV_EVENT_LBUTTONUP)
	{
		check_line_state=false;
		cvWaitKey(20);
	}
}

void CCVMFCView::OnDemarcateLine()
{
	imageClone(workImg,&imgshow);
	cvFlip(imgshow);
	ROI_rect.x=ROI_rect.y=0;
	cvNamedWindow("image",CV_WINDOW_AUTOSIZE);
	cvShowImage("image",imgshow);

	cvSetMouseCallback("image",on_mouse4);
	cvWaitKey();
	cvDestroyWindow("image");
}

效果图1:

OpenCV + MFC 鼠标键盘控制截取图像 前面用Matlab完成过这样的工作,但是win7+64位系统上写的到了XP上用不了,也就懒得再继续了。直接用OpenCVMFC写了,很简陋的界面和功能,倒也很快就完成了。还是那个想法,记录下留个纪念,能对别人有所帮助就更好了。因为有图像的操作,OpenCV还是很不错滴。在写的过程中,发现OpenCV对于鼠标键盘响应的操作也是灰常的便利呀。看来我真是孤陋寡闻呀… ^O^||| 阅读详情

相关推荐

基于OpenCVMFC实现鼠标键盘控制截图工具

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉与机器学习软件库,广泛应用于图像和视频处理领域。它支持多种编程语言(如C++、Python、Java)和多个操作系统(如Windows、Linux、macOS)。在开始图像处理之前,需先配置好OpenCV环境。以Python为例,可通过以下命令安装OpenCV:安装完成后,可以使用以下代码验证是否成功导入OpenCV:import cv2输出版本号表示安装成功。

weixin_42613360的博客 1055

OpenCV+MFC鼠标键盘控制截图

OpenCV + MFC 鼠标键盘控制截取图像,并且存储。详细介绍可以看http://blog.csdn.net/u011268606/article/details/47991477

利用MFC鼠标消息响应事件实现在picture control控件上图像ROI区域选定与裁剪

利用vs2010MFC对话框的鼠标消息函数RBBUTTONDOWN,ONMOUSEMOVE,RBBUTONUP实现在picture control控件上选定图像的矩形ROI感兴趣区域,并裁剪显示出所选定的ROI区域。按住鼠标右键,拖动光标划定矩形区域,再弹起鼠标右键即完成一次ROI区域选定。

Opencv鼠标事件/窗口交互详解

Opencv鼠标事件/窗口交互详解

yohnyang的博客 2140

opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像

鼠标操作属于用户接口设计,以前一直使用Qt来做,但是如果只需要简单的鼠标,键盘操作,直接调用opencv库的函数也未尝不可,鼠标操作之前已经接触很多了,在MFC,QT,OpenGL,等等中,理论主要就是两点,一是监控鼠标操作,鼠标点击,移动,松开,然后通过mouse_event识别判断出那一种鼠标的操作,根据不同的操作然后进行处理,二是在主函数中加入鼠标的回调函数,将鼠标操作与程序的窗口绑定。

恋上蛋炒面的专栏 1万+

利用OpenCV窗口鼠标事件设置函数setMouseCallback()实现显示当前鼠标坐标、截取指定区域图像等功能;并附函数putText()、circle()、rectangle()的介绍

OpenCV的函数setMouseCallback()的功能是设置窗口的鼠标事件回调函数,它本质上是对窗口的设置。 其原型如下: void cv::setMouseCallback(const String & winname, MouseCallback onMouse, void * userdata = 0) 其参数意义如下: winname---要设置鼠标事件的窗口名。 onMouse---鼠标事件的回调函数名,当窗口产生鼠标事件时,调用的函

昊虹AI笔记 4175

opencv鼠标响应函数_opencv MFC中的鼠标响应函数 | 学步园

方法一:bool check_line_state=false;IplImage* imgshow;void on_mouse4(int event, int x,int y,int flags,void* param){int thickness=1;CvPoint p1,p2;if(event==CV_EVENT_LBUTTONDOWN){ROI_rect.x=x;ROI_rect.y=y;c...

weixin_35363322的博客 210

OpenCV 通过 MFC 的 Picture Control 控件操作图像

    假设希望对显示在MFC Picture Control 控件里的图像进行操作,比方画线画点之类的,能够利用 OpenCV 结合 MFC 本身的鼠标响应函数来实现。     怎样将图像显示到 Picture Control 控件不谈。本文是採用的这篇博客所介绍的方法实现的。 点击打开链接      给对话框加入 WM_LBUTTONDOWN 鼠标左键点击消息。在消息响应函数中加入...

weixin_34005042的博客 198

MFC OpenCV鼠标滚轮缩放图片

背景   前置文章:MFC显示OpenCV图片的三种详细方法   在利用OpenCV嵌套MFC窗口显示图片后,希望通过鼠标滚轮函数缩放图片。 实现步骤 1、新建MFC应用程序。 2、配置OpenCV运行环境。 3、添加MFC的Pictrue Control控件 4、编写代码。只需修改MFCApplication1Dlg.cpp文件。 添加的代码: //在MFCApplication1Dlg...

北冥有鱼wyh的博客 7120

MFC OpenCV:显示图片的3种方法(详细)

背景   由于OpenCV常用的界面只是单纯的打开图像窗口,相关界面控件和工具较少且不美观,故使用MFC制作界面,而用OpenCV单纯做图像处理。此时便需要在MFC中显示OpenCV所用的图片。 方法 1、嵌套。直接将OpenCV窗口嵌套到MFC的Pictrue Control控件中。此方法既能直接显示图片,也可直接使用OpenCV鼠标按键事件,但对于鼠标滚轮事件只能使用MFC本地的滚轮函数。 ...

北冥有鱼wyh的博客 3万+

openCV鼠标响应事件

openCV学习使用,能响应鼠标点击,移动等事件的响应

openCV中cvSetMouseCallback的使用示例

openCV中cvSetMouseCallback的使用示例,示例简单易懂,看了之后马上能够理解openCV中cvSetMouseCallback函数的调用方法。

基于MFC简单图片裁剪工具

基于MFC简单图片裁剪工具,规则矩形裁剪。

mfc | mfc集成opencv,实现监控、拍照、录像、录像播放(保姆级教程)

开发环境:Visual Studio2022 OpenCV版本:4.5.4

王雪亮 1万+

opencv绑定MFC显示图片,MFC鼠标响应在opencv图片上失效

opencv窗口与mfc控件绑定时,可以认为opencv绑定区域覆盖在mfc 控件上,此时mfc本身的鼠标响应在此区域失效,只能调用opencv鼠标响应事件。而当你调用opencv鼠标滚轮事件时候又会没有反应,此时是因为mfc鼠标滚轮事件优先级别更好 ,只能在这里用mfc鼠标滚轮响应事件。或者就像我上面说的,使用opencv鼠标点击事件,使用Mfc鼠标滚轮事件。可以正常显示,但是对于鼠标时间的相应以及快捷键的相应会出现问题。直接使用Mfc的图像处理类不用opencv

Hello Nerd! 598
上一篇: 判断两线段是否相交
下一篇: Hough变换——Opencv版本
Rachel-Zhang
Rachel-Zhang 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄17年 3万+粉丝 472原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值