请高人指点此opencv程序代码
#include"stdafx.h"#include"highgui.h"voidmy_mouse_callback(intevent,intx,inty,intflag...
#include "stdafx.h"
#include "highgui.h"
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 _tmain(int argc, _TCHAR* argv[])
{
box=cvRect(-1,-1,0,0);
IplImage* image=cvCreateImage(cvSize(200,200),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");
}
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; //*=-1是什么意思
}
if(box.height<0)
{
box.y+=box.height;
box.height=-1;
}
draw_box(Image,box);
}
break;
}
}
我的opencv进行环境设置时没有加tbb,此程序总显示一个错误,cvCopyImage是为定义过的函数 展开
#include "highgui.h"
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 _tmain(int argc, _TCHAR* argv[])
{
box=cvRect(-1,-1,0,0);
IplImage* image=cvCreateImage(cvSize(200,200),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");
}
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; //*=-1是什么意思
}
if(box.height<0)
{
box.y+=box.height;
box.height=-1;
}
draw_box(Image,box);
}
break;
}
}
我的opencv进行环境设置时没有加tbb,此程序总显示一个错误,cvCopyImage是为定义过的函数 展开
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询