鼠标画矩形openCV
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
/*鼠标画矩形*/
void my_mouse_callback(
int event,int x,int y,int flag,void* param
); CvRect box;
bool drawing_box = false; void draw_box(IplImage* img,CvRect rect)
{
cvRectangle(
img,
cvPoint(box.x,box.y),
cvPoint(box.x+box.width,box.y+box.height),
cvScalar(0xff,0x00,0x00)
);
} int main()
{
box = cvRect(-,-,,);
IplImage* image = cvCreateImage(
cvSize(,),
IPL_DEPTH_8U, );
cvZero(image);
IplImage* temp = cvCloneImage(image); cvNamedWindow("Box Example"); cvSetMouseCallback(
"Box Example",
my_mouse_callback,
(void*)image
); while()
{
cvCopyImage(image,temp);
if(drawing_box) draw_box(temp,box);
cvShowImage("Box Example",temp); if(cvWaitKey()==) break;
} cvReleaseImage(&image);
cvReleaseImage(&temp);
cvDestroyAllWindows(); } void my_mouse_callback(
int event,int x,int y,int flag,void* param
)
{
IplImage* image = (IplImage*)param; switch (event)
{
case CV_EVENT_MOUSEMOVE:
{
if(drawing_box)
{
box.width = x-box.x;
box.height = y-box.y; } }
break;
case CV_EVENT_LBUTTONDOWN:
{
drawing_box = true;
box = cvRect(x,y,,);
}
break;
case CV_EVENT_LBUTTONUP:
{
drawing_box = false;
if(box.width<)
{
box.x += box.width;
box.width*=-;
}
if(box.height<)
{
box.y+=box.height;
box.height*=-;
}
draw_box(image,box);
}
break;
}
}
鼠标画矩形openCV的更多相关文章
- Opencv稍微高级点的鼠标事件-OpenCV步步精深
今天我们要来点稍微高级的东西.在我们按下鼠标时可以画矩形,而我们按下键盘m键时,切换到画圆的模式,再按下m键,回到画矩形模式. 一起来写下代码,首先当然还是调用库 import cv2 import ...
- c# PictureBox 的图像上使用鼠标画矩形框
C# 中在图像上画框,通过鼠标来实现主要有四个消息响应函数MouseDown, MouseMove, MouseUp, Paint重绘函数实现.当鼠标键按下时开始画框,鼠标键抬起时画框结束. Poin ...
- Opencv处理鼠标事件-OpenCV步步精深
在图片上双击过的位置绘制一个 圆圈 鼠标事件就是和鼠标有关的,比如左键按下,左键松开,右键按下,右键松开,双击右键等等. 我们可以通过鼠标事件获得与鼠标对应的图片上的坐标.我们通过以下函数来调用查看所 ...
- C#绘图:带背景,拖鼠标画矩形和直线
基于 Visual Studio 2012 .net framework 4.5 效果截图: 代码: https://download.csdn.net/download/talkwah/104828 ...
- OpenCV鼠标画图例程,鼠标绘制矩形
鼠标画矩形: // An example program in which the // user can draw boxes on the screen. // /* License: Oct. ...
- 【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨
原文:[高德地图API]从零开始学高德JS API(二)地图控件与插件——测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装 ...
- 【高德地图API】从零開始学高德JS API(二)地图控件与插件——測距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨
不管是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装的一系列更加便于开发人员使用.降低开发人员工作量的二级API接口.除了官方通用的鱼骨.鹰眼控件,还有大量官方开发的地图插件,相似谷歌 ...
- MATLAB鼠标事件
来源:https://blog.csdn.net/weixin_39090239/article/details/80586930 前记: 人机交互的方式--键盘开关.鼠标.触摸屏.体感传感器(Kin ...
- 颜色追踪块CamShift---33
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 颜色追踪块CamShift滤波器. 首先确保你的kinect驱动或者uvc相机驱动能正常启动:(如果你使 ...
随机推荐
- ISP模块之RAW DATA去噪(一)
ISP(Image Signal Processor),图像信号处理器,主要用来对前端图像传感器输出信号处理的单元,主要用于手机,监控摄像头等设备上. RAW DATA,可以理解为:RAW图像就是CM ...
- [Tools] Deploy a Monorepo to Now V2
Now by Zeit has recently been updated and now supports multi-language monorepos. In this lesson we'l ...
- iOS开发 最近开发了蓝牙模块,在此记录总结一下(转载)
1.基本概念 <1>中心者模式:常用的(其实99.99%)就是使用中心者模式作为开发,就是我们手机作为主机,连接蓝牙外设.由于开发只用到了中心者模式,所以我也只介绍中心者模式. <2 ...
- inspect模块详解
inspect模块主要提供了四种用处: (1).对是否是模块,框架,函数等进行类型检查. (2).获取源码 (3).获取类或函数的参数的信息 (4).解析堆栈 使用inspect模块可以提供自省功能, ...
- react-native Image resizeMode
resizeMode (默认为 cover)该属性用来设置图片的缩放模式,对应值如下 cover 保持图片宽高比,直到宽度和高度都大于等于容器视图的尺寸(参考下图效果)contain 在保持图片宽高比 ...
- 一分钟搞定触手app主页酷炫滑动切换效果
代码地址如下:http://www.demodashi.com/demo/12826.html 前言: 前几天在看手机直播的时候,自己就用上了触手app.一进到主页就看上了里面页面切换的效果,自己想这 ...
- Android轻量级日志管理框架
代码地址如下:http://www.demodashi.com/demo/12134.html ViseLog Android 轻量级日志框架,使用森林对象维护不同的日志树进行日志输出,可以是Logc ...
- [Hibernate开发之路](2)Hibernate问题
(1)数据库驱动问题 log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j: ...
- oracle字符串处理相关
函数 返回 描述 例子 to_char(timestamp, text) text 把 timestamp 转换成 string to_char(timestamp 'now','HH12:MI:SS ...
- 正则化--L2正则化
请查看以下泛化曲线,该曲线显示的是训练集和验证集相对于训练迭代次数的损失. 图 1 显示的是某个模型的训练损失逐渐减少,但验证损失最终增加.换言之,该泛化曲线显示该模型与训练集中的数据过拟合.根据奥卡 ...