图像增强 直方图均衡化处理C语言实现

上传人:飞*** 文档编号:31284559 上传时间:2018-02-06 格式:DOC 页数:22 大小:38.92KB
返回 下载 相关 举报
图像增强  直方图均衡化处理C语言实现_第1页
第1页 / 共22页
图像增强  直方图均衡化处理C语言实现_第2页
第2页 / 共22页
图像增强  直方图均衡化处理C语言实现_第3页
第3页 / 共22页
图像增强  直方图均衡化处理C语言实现_第4页
第4页 / 共22页
图像增强  直方图均衡化处理C语言实现_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《图像增强 直方图均衡化处理C语言实现》由会员分享,可在线阅读,更多相关《图像增强 直方图均衡化处理C语言实现(22页珍藏版)》请在金锄头文库上搜索。

1、图像增强 直方图均衡化 处理C 语言实现#ifndef BMP_H_3_INCLUDED#define BMP_H_3_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;BITMAPFILEHEADE

2、R;typedef struct tagBITMAPINFOHEADER/bmih DWORD biSize;LONG biWidth;LONG biHeight;WORD biPlanes;WORD biBitCount;DWORD biCompression;DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;BITMAPINFOHEADER;typedef struct tagRGBQUAD/rgbq BYTE rgbBlue;BYTE rgbGr

3、een;BYTE rgbRed;BYTE rgbReserved;RGBQUAD;typedef struct tagBITMAPINFOBITMAPINFOHEADER bmiHeader;RGBQUAD bmiColors1;BITMAPINFO;#endif/BMP_H_3_INCLUDED#include stdio.h#include stdlib.h#include string.h#include malloc.h#include ctype.h#include process.h#includeBMP_3.hBITMAPFILEHEADER bmfh;BITMAPINFOHEA

4、DER bmih;BYTE*imgData;int N;void readData();void HistTrans();int ReadFileHeader(BITMAPFILEHEADER*);int ReadInfoHeader(BITMAPINFOHEADER*);int CreatePalette(RGBQUAD);int ReadPixelData(BYTE*);LONG GetLineBytes(int,int);int SaveAsImage(char*);int main()char saveasfilepath256;int i;DWORD dwLineBytes;read

5、Data();dwLineBytes=GetLineBytes(bmih.biWidth,bmih.biBitCount);N=(int)dwLineBytes*bmih.biHeight;HistTrans();printf(Save as another path(ex.d:/poon.bmp)n);scanf(%s,saveasfilepath);i=SaveAsImage(saveasfilepath);if(i=-1)printf(Error:failed to save the image.n);return 0;void readData()int i,k,h;DWORD dwL

6、ineBytes;i=ReadFileHeader(&bmfh);if(i=0)printf(Read file header successful!n);k=ReadInfoHeader(&bmih);if(k=0)printf(Read info header successful!n);dwLineBytes=GetLineBytes(bmih.biWidth,bmih.biBitCount);imgData=(BYTE*)malloc(dwLineBytes*bmih.biHeight*sizeof(BYTE);h=ReadPixelData(imgData);if(h=0)print

7、f(Read pixel data successful!n);if(i=0&k=0&h=0)printf(Read datas successful!n);void HistTrans()int i,j,k;int count256;double SHisPixels256;int*Pixels;FILE*fp;Pixels=(int*)malloc(256*N*sizeof(int);for(i=0;i 256;i+)counti=0;SHisPixelsi=0.0;for(i=0;i 256*N;i+)Pixelsi=0;for(i=0;i N;i+)countimgDatai+;for

8、(i=0;i 256;i+)k=0;for(j=0;j N;j+)if(imgDataj=i)Pixelsi*256+k=j;k+;SHisPixels0=(double)count0/N);for(i=1;i 256;i+)SHisPixelsi=SHisPixelsi-1+(double)counti/N);for(i=0;i 256;i+)for(j=0;j counti;j+)imgDataPixelsi*256+j=int(SHisPixelsi*255+0.5);int ReadFileHeader(BITMAPFILEHEADER*bmfh)FILE*dataFile;dataF

9、ile=fopen(shuaige.bmp,r);if(fread(&bmfh-bfType,sizeof(WORD),1,dataFile)!=1)printf(Can not read bfType in the file header.n);fclose(dataFile);return-1;if(fread(&bmfh-bfSize,sizeof(DWORD),1,dataFile)!=1)printf(Can not read bfSize in the file header.n);fclose(dataFile);return-1;if(fread(&bmfh-bfReserve

10、d1,sizeof(WORD),1,dataFile)!=1)printf(Can not read bfReserved1 in the file header.n);fclose(dataFile);return-1;if(fread(&bmfh-bfReserved2,sizeof(WORD),1,dataFile)!=1)printf(Can not read bfReserved2 in the file header.n);fclose(dataFile);return-1;if(fread(&bmfh-bfOffBits,sizeof(DWORD),1,dataFile)!=1)

11、printf(Can not read bfOffBits in the file header.n);fclose(dataFile);return-1;fclose(dataFile);return 0;int ReadInfoHeader(BITMAPINFOHEADER*bmih)FILE*dataFile;dataFile=fopen(shuaige.bmp,r);fseek(dataFile,14,SEEK_SET);if(fread(&bmih-biSize,sizeof(DWORD),1,dataFile)!=1)printf(Can not read biSize in th

12、e info header.n);fclose(dataFile);return-1;if(fread(&bmih-biWidth,sizeof(LONG),1,dataFile)!=1)printf(Can not read biWidth in the info header.n);fclose(dataFile);return-1;if(fread(&bmih-biHeight,sizeof(LONG),1,dataFile)!=1)printf(Can not read biHeight in the info header.n);fclose(dataFile);return-1;i

13、f(fread(&bmih-biPlanes,sizeof(WORD),1,dataFile)!=1)printf(Can not read biPlanes in the info header.n);fclose(dataFile);return-1;if(fread(&bmih-biBitCount,sizeof(WORD),1,dataFile)!=1)printf(Can not read biBitCount in the info header.n);fclose(dataFile);return-1;if(fread(&bmih-biCompression,sizeof(DWO

14、RD),1,dataFile)!=1)printf(Can not read biCompression in the info header.n);fclose(dataFile);return-1;if(fread(&bmih-biSizeImage,sizeof(DWORD),1,dataFile)!=1)printf(Can not read biSizeImage in the info header.n);fclose(dataFile);return-1;if(fread(&bmih-biXPelsPerMeter,sizeof(LONG),1,dataFile)!=1)prin

15、tf(Can not read biXPelsPerMeter in the info header.n);fclose(dataFile);return-1;if(fread(&bmih-biYPelsPerMeter,sizeof(LONG),1,dataFile)!=1)printf(Can not read biYPelsPerMeter in the info header.n);fclose(dataFile);return-1;if(fread(&bmih-biClrUsed,sizeof(DWORD),1,dataFile)!=1)printf(Can not read biClrUsed in the info header.n);fclose(dataFile);return-1;if(fread(&bmih-biClrImportant,sizeof(DWORD),1,dataFile)!=1)printf(Can not read biClrImportant in the info header.n);fclose(dataFile);return-1;fclose(dataFile);return 0;int Cre

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号