裁剪图像时出现错误 opencv & openframework



我有以下代码:

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.有人可以告诉我该怎么做吗?

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

你可以试试

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

相关内容

  • 没有找到相关文章