[問題] 回傳數值
開發平台(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
09/04 15:23, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章