0
在OpenCV中,我想加載圖像並獲取像素值。輸入圖像像素被分配給另一個陣列。這些數組值被重構並顯示輸出圖像。對輸入像素進行一些操作,我想獲得相應的像素輸出。這個命令使用了什麼?在opencv中讀寫一個圖像
在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)
。更多關於here。