-1

私は次のコードを持っています:

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。誰かがそれを行う方法を教えてもらえますか?

4

1 に答える 1

0

f() に渡す img のインスタンスは、ofxCVImage などのインスタンスであると想像できます。私が知る限り、ofx は iplimage の保護された変数を格納しているため、ofxCVImage を iplimage にキャストすることはできません。

あなたは試すかもしれません

img = f(img.getCvImage()) // ofxCvImage::getCvImage() returns IplImage
于 2013-02-11T17:27:47.157 に答える