[問題] 回傳數值

看板C_and_CPP (C/C++)作者 (阿台)時間13年前 (2012/09/04 13:36), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC6.0 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 想要回傳矩陣中的數值到想要變化的圖檔上面 程式碼(Code):(請善用置底文網頁, 記得排版) int main(void) { unsigned char *image; unsigned char temp; int row, col,sum=0; int average_filter[3][3]; unsigned char gray[YSIZE+2][XSIZE+2]; unsigned char grayprecessed[YSIZE+1][XSIZE+1]; image = (unsigned char *)malloc((size_t)XSIZE * YSIZE * 3); if (image == NULL) return -1; bmp_read(image, XSIZE, YSIZE, "lena2"); //real image file //-------------color --> gray level----------------------- for (row=0; row < YSIZE; row++) { for (col=0; col< XSIZE; col++) // RGB -> GrayLevel for a pixel { gray[row][col]=(unsigned char) ( 0.2126* (*(image + 3 * (row*XSIZE+col) )) + 0.7152* (*(image + 3 * (row*XSIZE+col)+1 )) + 0.0722* (*(image + 3 * (row*XSIZE+col)+2 ) ) ); *(image + 3 * (row*XSIZE+col) +2)=gray[row][col]; *(image + 3 * (row*XSIZE+col) +1)=gray[row][col]; *(image + 3 * (row*XSIZE+col) ) =gray[row][col]; } } //---------------------image processing algorithm ---------------- for(row=1;row<=YSIZE;row++) { for(col=1;col<=XSIZE;col++) { sum=sum+gray[row-1][col-1] *average_filter[0][0]; sum=sum+gray[row-1][col] *average_filter[0][1]; sum=sum+gray[row-1][col+1] *average_filter[0][2]; sum=sum+gray[row][col-1] *average_filter[1][0]; sum=sum+gray[row][col] *average_filter[1][1]; sum=sum+gray[row][col+1] *average_filter[1][2]; sum=sum+gray[row+1][col-1] *average_filter[2][0]; sum=sum+gray[row+1][col] *average_filter[2][1]; sum=sum+gray[row+1][col+1] *average_filter[2][2]; grayprecessed[row][col]=sum/9; //sum=0; } } for(row=1;row<YSIZE+1;row++) { for(col=1;col<XSIZE+1;col++) { temp=grayprecessed[row][col]; } } for (row=0; row < YSIZE; row++) { for (col=0; col< XSIZE; col++) // RGB -> GrayLevel for a pixel { temp=(unsigned char) ( 0.2126* (*(image + 3 * (row*XSIZE+col) )) + 0.7152* (*(image + 3 * (row*XSIZE+col)+1 )) + 0.0722* (*(image + 3 * (row*XSIZE+col)+2 ) ) ); *(image + 3 * (row*XSIZE+col) +2)=temp; *(image + 3 * (row*XSIZE+col) +1)=temp; *(image + 3 * (row*XSIZE+col) ) =temp; } } //-------------------------------------------------------------------- bmp_write(image, XSIZE, YSIZE, "clena_clone_C"); //write image file bmp_write(temp, XSIZE, YSIZE, "clena_clone_C2"); free(image); } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.137.228

09/04 14:05, , 1F
想回答問題之前,還要先研究一堆亂碼
09/04 14:05, 1F

09/04 15:23, , 2F
你不能將code簡化嗎?
09/04 15:23, 2F
文章代碼(AID): #1GHPDTGU (C_and_CPP)
文章代碼(AID): #1GHPDTGU (C_and_CPP)