在openv中读写图像

  • 本文关键字:图像 读写 openv opencv
  • 更新时间 :
  • 英文 :


在OpenCV中,我想加载图像并获得像素值。输入图像像素被分配给另一个数组。该数组值被重建并显示输出图像。如果我对输入像素做一些操作,我想要得到相应的输出像素。为此使用了哪些命令?

嗨,我要做以下操作

#include "cv.h"
#include "highgui.h"
#include <stdio.h>
IplImage *image=0, *image2=0;
int main(int argc, char** argv) {
    char* file, *outF;
    //Usage: filename.exe imagefile outputimage
    if (argc == 3) {
        file=argv[1];
        outF=argv[2];
    }else {
        exit(0);
    }
    //Loading file
    if( (image = cvLoadImage( file, 1)) == 0 )
        return -1;
    // creating image in greyscale
    image2 = cvCreateImage(cvSize(image->width,image->height),IPL_DEPTH_8U,1);
    myFunction();
}
void myFunction() {
    uchar *pix; // To store pixel value temporarily
    uchar *out; 
    //// NOW U CAN ACCESS EACH Pixel
    for ( int posY=0; posY<image->height;posY++) {
        for ( int posX=0; posX<image->width;posX++) {
            pix=&((uchar *)(image->imageData+posY*image->widthStep))[posX]; //this is to get value
            out=&((uchar *)(image2->imageData+posY*image2->widthStep))[posX];
             //Do your stuff here ---Example
             // to access original image file use
             // uchar c = *pix;
             // this assgins your output image your manipulations
             *out= someValue[x][y]; //(0-255) your assignment from your array, It should work
            //----------------------

        }
    }
}

还有一些其他的东西,你需要保存和查看图像cvSaveImage(outF,image2) cvNamedWindow(file,1) cvShowImage(file,image)

相关内容

  • 没有找到相关文章

最新更新