错误opencv& openframework裁剪图像时

时间:2013-01-23 14:14:49

标签: image-processing opencv openframeworks

我有以下代码:

IplImage* f( IplImage* src )
{
   // Must have dimensions of output image
   IplImage* cropped = cvCreateImage( cvSize(1280,500), src->depth, src->nChannels );

   // Say what the source region is
   cvSetImageROI( src,  cvRect( 0,0, 1280,500 ) );

   // Do the copy
   cvCopy( src, cropped );
   cvResetImageROI( src );

   return cropped;
}

void testApp::setup(){
    img.loadImage("test.jpg");
    finder.setup("haarcascade_frontalface_default.xml");
    finder.findHaarObjects(img);
}

//--------------------------------------------------------------
void testApp::update(){

}

//--------------------------------------------------------------
ofRectangle cur;
void testApp::draw(){

    img = f(img);

    img.draw(0, 0);
    ofNoFill();
    for(int i = 0; i < finder.blobs.size(); i++) {
        cur = finder.blobs[i].boundingRect;
        ofRect(cur.x-20, cur.y-20, cur.width+50, cur.height+50);
    }
}

它会产生错误。我认为这是因为我没有将IplImage转换为ofImage。有人可以告诉我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

我会想象你传递给f()的你的img实例是ofxCVImage或类似的实例。据我所知,存储一个受保护的iplimage变量,因此你无法将xCVImage转换为iplimage。

您可以尝试

img = f(img.getCvImage()) // ofxCvImage::getCvImage() returns IplImage