使用C语言进行数字图像处理
用c语言进行数字图像处理
作者:彭千贺
邮件:博客:http://doc.xuehai.net
声明:本篇文章和程序全部有彭千贺原创,严禁任何形式的修改,如有发现任何形式的修改,将有权追究其相关责任人的法律责任。但是,你可以自由的传播本文章的副本。如需要修改,请邮件通知我。
其实,数字图像处理有几步呢?一共三步。第一步,读入图片。第二步,处理图片。第三步,保存图片。而第二步主要涉及的是处理图像的算法,所以,我在这里就不多说了。而第一步和第三步是为第二步做铺垫的。
关于位图文件的文件结构,可以参看我的另外一篇文章《详说如何用C语言,C++和JAVA来读入和保存位图》。此文章可以在我的博客下载到。我在这里,贴出用C语言进行读入位图的文件头,信息头,像素数据和保存位图等程序,另外还有声明位图文件结构的头文件。
以下程序在VC6.0中,已经无误通过编译。
位图文件结构的声明:BMP.h
#ifndef BMP_H_INCLUDED
#define BMP_H_INCLUDED
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef long LONG;
typedef unsigned char BYTE;
typedef struct tagBITMAPFILEHEADER
{ // bmfh
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
}BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER
{ // bmih
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;