开发者

Read and write an image in opencv

In OpenCV,I want to load the image and get the pixel values.the input image pixels are assigned to another one array.that array values are reconstruct and display the output image.if i do some manipulations to that input pixels,i want to get corresponding output of that pixels.what are the commands used for 开发者_如何转开发this?


Hi I would do the following

#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
            //----------------------


        }
    }
}

There are some other stuffs you need to save and view image cvSaveImage(outF,image2) cvNamedWindow(file,1) cvShowImage(file,image). More on here.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜