| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1134 人关注过本帖, 1 人收藏
标题:C语言实现数字图像处理
只看楼主 加入收藏
angelapapas
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-9-17
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:2 
C语言实现数字图像处理
以前是用VC++实现数字图像处理的,那里面打开一个BMP文件然后对文件数据处理很简单,但用到C时却取不了BMP中的图像数据,我用的是fopen和fread命令,程序如下:

功能:打开一副位图,根据给定的阈值进行二值化,origin_image存放原始图片,result_image存放处理后的图片,程序运行后result_image中没有图片,另外这是在VC++环境下运行的,在CCS环境下都运行不了。

#include <stdio.h>
#define IMAGE_WIDTH     4
#define IMAGE_HEIGHT    10
#define ONE             1
#define ZERO            0
unsigned char origin_image[IMAGE_WIDTH][IMAGE_HEIGHT];
unsigned char result_image[IMAGE_WIDTH][IMAGE_HEIGHT];
main()
{
    FILE  *I_file,*O_file;
    char  origin_image_file_name[80];
    char  result_image_file_name[80];
    int   threshold;
    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");
   
    printf("threshold(0^255)-->");
    scanf("%d",&threshold);
    printf("\n");
   
    //read image file
    if((I_file=fopen(origin_image_file_name,"r"))==NULL)
    {
        printf("file open error!");
        return 0;
    }
   
    if((O_file=fopen(result_image_file_name,"w"))==NULL)
    {
        printf("file open error!");
        return 0;
    }
   
    for(i=0;i<IMAGE_WIDTH;i++)
    {
        fread(origin_image[i],sizeof(unsigned char), IMAGE_HEIGHT,I_file);
    }
    fclose(I_file);
   
    for(i=0;i<IMAGE_WIDTH;i++)
    {
        for(j=0;j<IMAGE_HEIGHT;j++)
        {
            result_image[i][j]=(origin_image[i][j]>threshold)?ONE:ZERO;
        }
    }
   
    //SAVE
    for(i=0;i<IMAGE_WIDTH;i++)
    {
        fwrite(result_image[i],sizeof(unsigned char),IMAGE_HEIGHT,O_file);
    }
    fclose(O_file);
}
希望各位仁人志士给予帮助
搜索更多相关主题的帖子: C语言 图像处理 数字 
2009-10-12 19:36
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:10 
文件操作不懂
2009-10-12 19:40
yanglingzhan
Rank: 2
等 级:论坛游民
帖 子:15
专家分:14
注 册:2009-10-13
收藏
得分:10 
虽然看不懂,但也顶一下!
2009-10-13 17:36
快速回复:C语言实现数字图像处理
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048251 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved