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