我有一个结构体,比较大,如opencv里面的 IplImage 类型。
大家知道IplImage 类型的数据都是 *指针类型的,处理起来才方便是吧~~~而我需要总是存储摄像头采集到的邻近的三帧图像:
IplImage *img1;
IplImage *img2;
IplImage *img3;请问用什么数据结构存储这三幅图片比较好捏?数组就是 IplImage imgs[3]; 这个的话里面存储非指针的IplImage类型的数据处理起来比较方便,可是非指针类型的不方便后面的处理。容器的话是 vector<IplImage> imgs; 这样也不是指针的~~~
是不是用 IplImage **imgs; 会方便一点?
那么如何申请内存空间?
每幅图片是imgs[0] = (IplImage *)malloc(640 * 480 + sizeof(IplImage));
imgs[1] = (IplImage *)malloc(640 * 480 + sizeof(IplImage));
imgs[2] = (IplImage *)malloc(640 * 480 + sizeof(IplImage));是不是这个样子,有点混乱
表示不太懂。。求指教指向指针的指针结构体空间分配
for(i = 0; i<3; i++)
img[i]= (IplImage *)malloc(640 * 480 + sizeof(IplImage));
我也在用OpenCV,http://blog.csdn.net/morewindows/article/category/1291764欢迎多交流。
你可以用迭代器vector<IplImage>::iterator iter;
迭代器和指针一样。
这样比较安全。
IplImage* imgs[3];指针类型元素
vector<IplImage*> imgs;
肿么弄了两个指针就米有想到 IplImage *img[3]; 直接这样捏。
嘿嘿,后面为了处理图像方便。还是用cvCreateImage来申请的空间~~~吼吼~~~谢谢啦~~~昨天思路好混乱
都米有怎么用过vector ,所以老是忘记 iterator 。
极是 极是 啊。嘿嘿。
太弱了,我从来都米有用过vector里面带指针的。(⊙o⊙)… 多多联系多多感谢,嘿嘿