程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 修改代碼-求解這段函數代碼的正確更改之法~

修改代碼-求解這段函數代碼的正確更改之法~

編輯:編程綜合問答
求解這段函數代碼的正確更改之法~
    IplImage *src = cvCreateImage(cvSize(1000,800), IPL_DEPTH_8U,3);
    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(rx,ry,rheight,rwidth);

    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(orgImage,size);
    cvCopy(orgImage,result);
    cvResetImageROI(orgImage);
}

程序出現了錯誤,如下圖:
圖片說明

在cmd中卻出現了如下提示:
圖片說明

加斷點看出的梁圖片變量也未覺不妥;
圖片說明


圖片說明
求大神們幫幫忙解答一下,我究竟要如何修改代碼呢?
妹紙先在此謝過了~

最佳回答:


cvCopy(orgImage,result);你的圖片深度或者大小不匹配,導致圖像拷貝出錯

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved