なぜかtxtの最後のほうの画素値が、数か所実際の画素値と異なった値になっていました。
もしプログラムに問題があるようでしたらご教授お願いします。
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <math.h>
int main(){
IplImage* test = cvLoadImage("1.jpg",CV_LOAD_IMAGE_ANYDEPTH);
uchar grayvector[1];
uchar p[1];
const int facesize = 40;
int *yvector_normal = (int*)malloc(sizeof(int*) * facesize * facesize);
int i = 0;
for(int y = 0; y < facesize; y++){
for(int x = 0; x < facesize; x++){
//入力画像のベクトルを取得
grayvector[0] = test->imageData[test->widthStep * y + x * 3 + 2];
yvector_normal[i] = (int)grayvector[0];
i++;
}
}
//保存した画像の画素をファイルに保存
FILE *outputfile;
outputfile = fopen("yvector.txt","w");
//画素情報をファイルに書き込み
for(int y = 0; y < facesize; y++){
for(int x = 0; x < facesize; x++){
p[0] = test->imageData[test->widthStep * y + x * 3 + 2];
int gray = (int)p[0];
fprintf(outputfile,"%d ",gray);
}
}
fprintf(outputfile,"\n");
fclose(outputfile);
printf("i = %d\n",i);
//画像の値読み込み(チェック用)
printf("後ろ40個↓\n");
for(int i = 1560;i < 1600;i++)
printf("y[%d] = %d\n",i,yvector_normal[i]);
printf("前20個↓\n");
for(int i = 0;i < 20;i++)
printf("y[%d] = %d\n",i,yvector_normal[i]);
free(yvector_normal);
return(0);
}