我正在研究从布拉兹基和凯勒那里学习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 ++
中的CvMat或IplImagepkg-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中止
它能成为什么?一些忠告??我没有修改过这个例子,我刚刚用synaptic下载了opencv,所以我觉得它是在最后一个版本上的!
答案 0 :(得分:1)
./a.out tree.avi
当样本期待图像时,您正在传递视频文件。