對opencv新手來說,沒有正確初始化IplImage*指針的錯誤經常存在!本人喳喳,最近特此記錄一下這種錯誤!
不廢話,上代碼:
int main()
{
IplImage* pic=cvLoadImage("/home/lujieyan/projects/studyOpencv/ubuntu.png");
IplImage*picOut;
//將圖像按照原圖的1/2的尺寸大小來輸出
cvPyrDown(pic,picOut);
while(1)
{
cvShowImage("pic",pic);
cvShowImage("pinOut",picOut);
waitKey(1);
}
}
運行上面程序會提示提示錯誤”error:=====“(這種錯誤編譯器是不會提示的,但卻運行不出程序!)
這個錯誤可能是沒有初始化就是使用iplimage指針的原因吧!
修改代碼如下:
int main()
{
IplImage* pic=cvLoadImage("/home/lujieyan/projects/studyOpencv/ubuntu.png");
IplImage*picOut=cvCreateImage(cvSize(pic->width/2,pic->height/2),IPL_DEPTH_8U,3);
cvPyrDown(pic,picOut);
while(1)
{
cvShowImage("pic",pic);
cvShowImage("pinOut",picOut);
waitKey(1);
}
}
代碼運行成功!!!
總結:在使用iplimage指針之前一定要先將該指針初始化!這是c++的基礎知識啊,只要使用指針都要先將指針正確地初始化,否則會出現程序崩潰的錯誤!在opencv中,除了iplimage*,還有Mat指針,使用之前一定都要初始化!