2011-07-20 36 views
0

在OpenCV中,我想加載圖像並獲取像素值。輸入圖像像素被分配給另一個陣列。這些數組值被重構並顯示輸出圖像。對輸入像素進行一些操作,我想獲得相應的像素輸出。這個命令使用了什麼?在opencv中讀寫一個圖像

回答

2

您好我會做以下

#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)。更多關於here