2012-01-01 26 views
0

IplImage *を関数に渡し、その関数で画像を表示したいと考えています。私のコードは以下の通りです。opencvでIplImageポインタを渡す

#include <cstdlib> 
#include <cstdio> 
#include <cmath> 
#include <cv.h> 
#include <highgui.h> 


IplImage* doPyrDown(IplImage* in) { 

    cvNamedWindow("Debug", CV_WINDOW_AUTOSIZE); 
    cvShowImage("Debug", in); 
    cvWaitKey(0); 
    cvReleaseImage(&in); 

    IplImage* out = 0; 
    return(out); 
} 

int main(int argc, char *argv[]) 
{ 

    cvNamedWindow("Example6-in", CV_WINDOW_AUTOSIZE); 

    IplImage* imgIN = 0; 
    IplImage* imgOUT = 0; 

    imgIN = cvLoadImage("image.jpg"); 
    cvShowImage("Example6-in", imgIN); 
    cvWaitKey(0); 
    cvReleaseImage(&imgIN); 

    imgOUT = doPyrDown(imgIN); 

    return 0; 
} 

元の画像がメイン機能に表示されます。しかし、イメージはdoPyrDown関数に表示されません。 「デバッグ」と呼ばれる空のウィンドウが作成されています。

助けてください。

答えて

0

main関数からcvReleaseImage行を削除します。

+0

ありがとうございます。出来た。 – wrahool

1

doPyrDownに渡す前に、imgINcvReleaseImageを実行します。私はopencvに慣れていませんが、その後はcvShowImageが動作するとは思っていません。

+0

はい、私は考えました。 – wrahool

関連する問題