注册 登录
编程论坛 C++教室

灰度图像二值化,请高手看一下这个程序.

xingkong539 发布于 2008-06-11 17:14, 477 次点击
#include<stdio.h>
#define imag_size_row 256
#define imag_size_col 256
#define one  255
#define zero 0
unsigned char origin_image[imag_size_row][imag_size_col];
unsigned char result_image[imag_size_row][imag_size_col];
 
void main(int argc,char *argv[])
{
    FILE *I_file,*O_file;
    char origin_image_file_name[80];
     char result_image_file_name[80];
     int i,j;
     printf("origin_image_file_name-->");
     scanf("%s",origin_image_file_name);
     printf("\n");
     printf("result_image_file_name-->");
     scanf("%s",result_image_file_name);
     printf("\n");
     if(!(I_file=fopen(origin_image_file_name,"rb")))
     {printf(" origin file open error!");}

     if(!(O_file=fopen(result_image_file_name,"wb")))
        {printf("result file open error!");}
     for(i=0;i<imag_size_row;i++)
         fread(origin_image[i],sizeof(unsigned char),imag_size_col,I_file);
     fclose(I_file);
     for(i=0;i<imag_size_row;i++)
         for(j=0;j<imag_size_col;j++)
         {result_image[i][j]=(result_image[i][j]==0)?zero:one;
         }
    for(i=0;i<imag_size_row;i++)
        fwrite(result_image[i],sizeof(unsigned char),imag_size_col,O_file);
    fclose(O_file);



    
}
0 回复
1