linux 下调用opencv接口函数实现鼠标在窗口画方框操作
来源:互联网 发布:在github上下载源码 编辑:程序博客网 时间:2024/05/18 16:35
#include <opencv2/legacy/compat.hpp>
#include <opencv2/highgui/highgui.hpp>
void my_mouse_callback(int event,int x,int y,int flags,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(int argc,char** argv)
{
box =cvRect(-1,-1,0,0);
IplImage* image =cvCreateImage(cvSize(400,400),IPL_DEPTH_8U,3);
cvZero(image);
IplImage* temp =cvCloneImage(image);
cvNamedWindow("Box Example");
cvSetMouseCallback("Box Example",my_mouse_callback,(void*)image);
while(1){
cvCopyImage(image,temp);
if(drawing_box)
draw_box(temp,box);
cvShowImage("Box Example",temp);
if(cvWaitKey(15)==27)
break;
}
cvReleaseImage(&image);
cvReleaseImage(&temp);
cvDestroyWindow("Box Example");
return 0;
}
void my_mouse_callback(int event,int x,int y,int flags,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,0,0);
}
break;
case CV_EVENT_LBUTTONUP:{
drawing_box =false;
if(box.width<0){
box.x+=box.width;
box.width*=-1;
}
if(box.height<0){
box.y+=box.height;
box.height*=-1;
}
draw_box(image,box);
}
break;
}
}
#include <opencv2/highgui/highgui.hpp>
void my_mouse_callback(int event,int x,int y,int flags,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(int argc,char** argv)
{
box =cvRect(-1,-1,0,0);
IplImage* image =cvCreateImage(cvSize(400,400),IPL_DEPTH_8U,3);
cvZero(image);
IplImage* temp =cvCloneImage(image);
cvNamedWindow("Box Example");
cvSetMouseCallback("Box Example",my_mouse_callback,(void*)image);
while(1){
cvCopyImage(image,temp);
if(drawing_box)
draw_box(temp,box);
cvShowImage("Box Example",temp);
if(cvWaitKey(15)==27)
break;
}
cvReleaseImage(&image);
cvReleaseImage(&temp);
cvDestroyWindow("Box Example");
return 0;
}
void my_mouse_callback(int event,int x,int y,int flags,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,0,0);
}
break;
case CV_EVENT_LBUTTONUP:{
drawing_box =false;
if(box.width<0){
box.x+=box.width;
box.width*=-1;
}
if(box.height<0){
box.y+=box.height;
box.height*=-1;
}
draw_box(image,box);
}
break;
}
}
阅读全文
0 0
- linux 下调用opencv接口函数实现鼠标在窗口画方框操作
- linux下调用opencv接口函数在指定图片上面画几何图形
- linux下调用opencv接口函数,在一张图片上面画框
- linux下调用opencv接口函数显示一张图片
- linux 下调用opencv接口函数播放视频
- linux下调用opencv接口函数创建矩阵,并初始化
- linux下使用opencv接口函数对图片边缘化操作
- opencv-鼠标在窗口中画矩形
- Opencv HighGUI函数_用鼠标在窗口中画方形
- linux下调用opencv接口函数处理输入文本和字体
- linux下调用opencv接口函数使图片有渐变的效果
- 利用setMouseCallback函数实现鼠标对图片窗口的操作!
- OpenCV学习笔记-用鼠标在窗口中画矩形
- opencv用鼠标在窗口中画方形的程序
- openCV 用鼠标在窗口中画方形
- opencv用鼠标在窗口中画方形的程序
- Opencv方框滤波-boxFilter函数
- Opencv 用鼠标在窗口中画方形的程序实现_第四章书中源码摘写
- Linux中提示No such file or directory解决方法
- 网络爬虫---1.简介
- Drag-and-Drop——拖拽
- Objective-C 内存管理
- SAX方法解析XML文件
- linux 下调用opencv接口函数实现鼠标在窗口画方框操作
- Android禁止输入表情符号的EditText
- CDN(内容分发网络)技术原理
- hadoop之map读取数据流程
- ros catkin_make 出现add_custom_target cannot create target 错误
- TCP三次握手连接及seq和ack号的正确理解
- BZOJ 3622 已经没有什么好害怕的了
- Objective-C 语法二(对象初始化)
- PKI系统深入介绍