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

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。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值