我看到学习OpenCV中英文版98页的那个例子,为什么要先用cvCloneImage 在用cvCopyImage,代码如下 20
intmain(){box=cvRect(-1,-1,0,0);IplImage*img=cvCreateImage(cvSize(200,200),IPL_DEPTH_...
int main()
{
box=cvRect(-1,-1,0,0);
IplImage* img=cvCreateImage(cvSize(200,200),IPL_DEPTH_8U,3);
cvZero(img);
IplImage* temp=cvCloneImage(img);
cvNamedWindow("Show",1);
cvSetMouseCallback("Show",my_mouse_callback,(void*)img);
while(1)
{
cvCopyImage(img,temp);
if(drawing_box)
{
draw_box(temp,box);
}
cvShowImage("Show",temp);
if (cvWaitKey(15)==27)
{
break;
}
}
cvReleaseImage(&img);
cvReleaseImage(&temp);
cvDestroyWindow("Show");
} 展开
{
box=cvRect(-1,-1,0,0);
IplImage* img=cvCreateImage(cvSize(200,200),IPL_DEPTH_8U,3);
cvZero(img);
IplImage* temp=cvCloneImage(img);
cvNamedWindow("Show",1);
cvSetMouseCallback("Show",my_mouse_callback,(void*)img);
while(1)
{
cvCopyImage(img,temp);
if(drawing_box)
{
draw_box(temp,box);
}
cvShowImage("Show",temp);
if (cvWaitKey(15)==27)
{
break;
}
}
cvReleaseImage(&img);
cvReleaseImage(&temp);
cvDestroyWindow("Show");
} 展开
3个回答
展开全部
IplImage* temp=cvCloneImage(img);
相当于重新定义了 一个temp ,内容与img相同,但使用的存储空间不同
相当于重新定义了 一个temp ,内容与img相同,但使用的存储空间不同
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cvCloneImage是分配内存的,不然copy会出错,有cvCreateImage也一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询