Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 使用OpenCV在循环中创建新图像_Image Processing_Opencv_For Loop - Fatal编程技术网

Image processing 使用OpenCV在循环中创建新图像

Image processing 使用OpenCV在循环中创建新图像,image-processing,opencv,for-loop,Image Processing,Opencv,For Loop,我正在用OpenCV编写一些图像转换代码,我不知道如何创建图像内存缓冲区来在每次迭代中加载图像。我有迭代次数(maxImNumber)和输入图像。在每个循环中,程序必须创建调整大小和修改输入图像的图像。下面是一些基本代码(概念) for(int-imageIndex=0;imageIndex宽度)/2,图像[imageIndex]->高度),IPL_深度_8U,1); 对于(i=1;iheight;i++){ 索引=0;// 对于(j=0;j宽度;j=j+2){ //对图像内容执行一些基本的数学

我正在用OpenCV编写一些图像转换代码,我不知道如何创建图像内存缓冲区来在每次迭代中加载图像。我有迭代次数(maxImNumber)和输入图像。在每个循环中,程序必须创建调整大小和修改输入图像的图像。下面是一些基本代码(概念)

for(int-imageIndex=0;imageIndex宽度)/2,图像[imageIndex]->高度),IPL_深度_8U,1);
对于(i=1;iheight;i++){
索引=0;//
对于(j=0;j宽度;j=j+2){
//对图像内容执行一些基本的数学操作,并将其存储到新图像中
图像[imageIndex+1][i][index]=(图像[imageIndex][i][j]+图像[imageIndex][i][j+2])/2;
索引++
}
}
inputImage=cvCreateImage(cvSize((图像[imageIndex+1]->宽度),图像[imageIndex]->高度),IPL_深度_8U,1);
cvCopy(图像[imageIndex+1],输入图像,0);
}
有人能解释一下我如何创建这个图像缓冲区(images[])并为它分配内存吗。另外,如何访问此缓冲区中的任何图像


提前非常感谢

images
只是一个
IplImage
指针数组,因此以下操作应该有效:


IplImage**images=(IplImage**)malloc(sizeof(IplImage*)*maxImNumber)

或更好的矢量图像。。。 然后是图像。每个循环上的回推(newImage)

使用
std::vector images(maxImNumber)

对其迭代一次以使用分配所有图像,例如
cvCreateImage()
cvCloneimage()


当您完成它的迭代器和<代码> CVReaseIMAGE()/Cys>所有图像时,

开始使用OpenCV的C++ API!
    for (int imageIndex = 0; imageIndex < maxImNumber; imageIndex++){
    cvCopy(inputImage, images[imageIndex], 0);
    cvReleaseImage(&inputImage);

    images[imageIndex+1] = cvCreateImage(cvSize((image[imageIndex]->width)/2, image[imageIndex]->height), IPL_DEPTH_8U, 1);

    for (i=1; i < image[imageIndex]->height; i++) {   
        index = 0;      //   
        for(j=0; j < image[imageIndex]->width ; j=j+2){
            // doing some basic matematical operation on image content and store it to new image
            images[imageIndex+1][i][index] = (image[imageIndex][i][j] + image[imageIndex][i][j+2])/2;
            index++
        }
    }

    inputImage = cvCreateImage(cvSize((image[imageIndex+1]->width), image[imageIndex]->height), IPL_DEPTH_8U, 1);
    cvCopy(images[imageIndex+1], inputImage, 0);
}