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.
精彩评论