IplImage *img;
img = (IplImage **)malloc(IMAGE_NUM * sizeof(IplImage *));
for(index=0; index<IMAGE_NUM; index++){
sprintf(filename, "preproc/preproc%d.jpg", index);
img = cvLoadImage(filename, 0);
}
嗨!這段代碼在這裏產生錯誤:在分配無法轉換「的IplImage ** {又名_IplImage * }」到「的IplImage {又名_IplImage *}」。我想在這裏加載多個圖像。我究竟做錯了什麼?謝謝!錯誤轉換的IplImage **來的IplImage *
如果IMG被聲明爲的IplImage ** IMG,那我怎麼才能訪問它的寬度和高度?我怎樣才能正確使用函數作爲cvSetImageROI?什麼是正確的語法,因爲我在聲明如上所述的img後遇到問題。非常感謝你! – cmsl
可以這樣想:如果我們聲明一個指向對象或任意數據類型的指針,比如int * pointerToInt;我們可以使這個指針指向(簡單地說)一個整數數組。如果我們這樣做(無論是靜態的還是動態的),我們可以通過說:pointerToInt [N]來訪問我們數組的第N個成員。請注意,即使我們動態聲明數組(int * pointerToInt = new int [MagicalNumber])並因此確實聲明我們有指針,我們仍然可以通過數組下標運算符[]來訪問它。所以pointerToInt [MagicalNumber-1]的作品。同樣適用於2D陣列。 – ScarletAmaranth
我們有int ** pointerToIntPointer - 它聲明瞭一個指向指針的指針。動態分配這將涉及一個循環,我不想在這裏詳細說明,但我們可以靜態地說:int pointerToIntPointer [MagicalNumber0] [MagicalNumber1];然後用數組下標運算符訪問數組--int int pointerToIntPointer [MagicalNumber0-1] [MagicalNumber1-1];我們可以對動態分配的數組執行相同的語法,它類似於「原始指針」多一點。同時不要忘記刪除[]你動態分配的數組! :) 只是在說'。 – ScarletAmaranth