问题描述
- 求解这段函数代码的正确更改之法~
-
IplImage *src = cvCreateImage(cvSize(1000800) IPL_DEPTH_8U3); dst = cvCreateImage(cvGetSize(src) 8 3); //以下rheight、rwidth、rx、ry是经过拟合函数的坐标值等信息计算得出的 float rheight=box.size .height *abs(cos(box.angle))+box.size.width*abs(sin(box.angle )); float rwidth=box.size .height*abs(sin(box.angle))+box.size.width*abs(cos(box.angle )); float rx=(center.x-rwidth/2)>0?(center.x-rwidth/2):0; float ry=(center.y-rheight/2)>0?(center.y-rheight/2):0; CvRect rect = cvRect(rxryrheightrwidth); IplImage * dst11 = cvCreateImage(dst_size11 dst->depth dst->nChannels);//以上是这个函数的参数,在某一函数内调用这个函数如下格式: GetImageRect(dst rect dst11);//函数内部如下: void GetImageRect(IplImage* orgImage CvRect rectInImage IplImage* imgRect)//从图像orgImage中提取一块(rectInImage)子图像imgRect{ //从图像orgImage中提取一块(rectInImage)子图像imgRect IplImage *result=imgRect; CvRect size; size.x=rectInImage.x; size.y=rectInImage.y; size.width=rectInImage.width; size.height=rectInImage.height; result=cvCreateImage(cvGetSize(orgImage) orgImage->depth orgImage->nChannels ); //从图像中提取子图像 cvSetImageROI(orgImagesize); cvCopy(orgImageresult); cvResetImageROI(orgImage);}
求大神们帮帮忙解答一下,我究竟要如何修改代码呢?
妹纸先在此谢过了~
解决方案
cvCopy(orgImageresult);你的图片深度或者大小不匹配,导致图像拷贝出错
解决方案二:
关键是你得给出cvCopy的函数实现来。现在的信息不全。
时间: 2024-09-10 06:16:00