cvPyrDown分析

對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指針,使用之前一定都要初始化!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章