来自Learning Opencv,O'Reilly运行练习2-4的问题

时间:2011-08-24 15:54:04

标签: c++ opencv

我正在研究从布拉兹基和凯勒那里学习oPENCV,o'Reilly的grat书。 我在Ubuntu 10.10上,之前的例子运行正常,但在2-4我遇到了问题。

这是代码:

#include "cv.h"
#include "highgui.h"

void example2_4( IplImage* image )
{
    // Create some windows to show the input
    // and output images in.
    //
    cvNamedWindow( "Example2_4-in", CV_WINDOW_AUTOSIZE );
    cvNamedWindow( "Example2_4-out", CV_WINDOW_AUTOSIZE );

    // Create a window to show our input image
    //
    cvShowImage( "Example2_4-in", image );

    // Create an image to hold the smoothed output
    //
    IplImage* out = cvCreateImage(
        cvGetSize(image),
        IPL_DEPTH_8U,
        3
    );

    // Do the smoothing
    //
    cvSmooth( image, out, CV_GAUSSIAN, 5,5 );
    cvSmooth( out, out, CV_GAUSSIAN, 5, 5);

    // Show the smoothed image in the output window
    //
    cvShowImage( "Example2_4-out", out );

    // Be tidy
    //
    cvReleaseImage( &out );

    // Wait for the user to hit a key, then clean up the windows
    //
    cvWaitKey( 0 ); 
    cvDestroyWindow("Example2_4-in" );
    cvDestroyWindow("Example2_4-out" );

}

int main( int argc, char** argv )
{
  IplImage* img = cvLoadImage( argv[1] );
  cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE );
  cvShowImage("Example1", img );
  example2_4( img );
//  cvWaitKey(0);
  cvReleaseImage( &img );
  cvDestroyWindow("Example1");
}

这是错误:

  

alberto @ zefiro:/ tmp $ g ++ pkg-config opencv --cflags --libs   ch2_ex2_4.cpp alberto @ zefiro:/ tmp $ ./a.out tree.avi OpenCV错误:错误   cvGetSize文件中的参数(Array应为CvMat或IplImage)   /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp,第1233行终止   抛出'cv :: Exception'的实例后调用what():   /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp:1233:错误:( - 5)   数组应该是函数cvGetSize

中的CvMat或IplImage      

中止

它能成为什么?一些忠告??我没有修改过这个例子,我刚刚用synaptic下载了opencv,所以我觉得它是在最后一个版本上的!

1 个答案:

答案 0 :(得分:1)

./a.out tree.avi

当样本期待图像时,您正在传递视频文件。