资源简介
用C语言写的图像处理程序,包括读入8位图像,对图像进行直方图均衡化,灰度线性变化和灰度线性拉伸。
代码片段和文件信息
#include
#include
#include
RGBQUAD *pColorTable;//颜色表指针
void HistEqualize(BYTE *imgdataint widthint heightint bitCount);
bool saveBmp(char *bmpName unsigned char *imgBuf int width int height int biBitCount RGBQUAD *pColorTable);
void linerTrasmision(BYTE *imgdataint widthint heightint bitCountint kint b);
void GrayStretch(BYTE *imgdataint widthint heightint bitCountint x1int x2int y1int y2);
int ReadFileHeader(char *filepathBITMAPFILEHEADER *bmfh)
{
FILE *fp;
//打开文件
fp=fopen(filepath“rb“);
if(!fp)
{
printf(“Can not open the file:%s\n“filepath);
return -1;
}
//读入bfType
if(fread(&bmfh->bfTypesizeof(WORD)1fp)!=1)
{
printf(“Can not read bfType in the file header.\n“);
fclose(fp);
return -1;
}
//读入bfSize
if(fread(&bmfh->bfSizesizeof(DWORD)1fp)!=1)
{
printf(“Can not read bfSize in the file header.\n“);
fclose(fp);
return -1;
}
//读入bfReserved1
if(fread(&bmfh->bfReserved1sizeof(WORD)1fp)!=1)
{
printf(“Can not read bfReserved1 in the file header.\n“);
fclose(fp);
return -1;
}
//读入bfReserved2
if(fread(&bmfh->bfReserved2sizeof(WORD)1fp)!=1)
{
printf(“Can not read bfReserved2 in the file header.\n“);
fclose(fp);
return -1;
}
//读入bfOffBits
if(fread(&bmfh->bfOffBitssizeof(DWORD)1fp)!=1)
{
printf(“Can not read bfOffBits in the file header.\n“);
fclose(fp);
return -1;
}
//关闭文件指针
fclose(fp);
return 0;
}
int ReadInfoHeader(char *filepathBITMAPINFOHEADER *bmih)
{
FILE *fp;
//打开文件
fp=fopen(filepath“rb“);
if(!fp)
{
printf(“Can not open the file:%s\n“filepath);
return -1;
}
//使文件指针跳过文件头(14字节)
fseek(fp14SEEK_SET);
//读入biSize
if(fread(&bmih->biSizesizeof(DWORD)1fp)!=1)
{
printf(“Can not read biSize in the info header.\n“);
fclose(fp);
return -1;
}
//读入biWidth
if(fread(&bmih->biWidthsizeof(LONG)1fp)!=1)
{
printf(“Can not read biWidth in the info header.\n“);
fclose(fp);
return -1;
}
//读入biHeight
if(fread(&bmih->biHeightsizeof(LONG)1fp)!=1)
{
printf(“Can not read biHeight in the info header.\n“);
fclose(fp);
return -1;
}
//读入biPlanes
if(fread(&bmih->biPlanessizeof(WORD)1fp)!=1)
{
printf(“Can not read biPlanes in the info header.\n“);
fclose(fp);
return -1;
}
//读入biBitCount
if(fread(&bmih->biBitCountsizeof(WORD)1fp)!=1)
{
printf(“Can not read biBitCount in the info header.\n“);
fclose(fp);
return -1;
}
//读入biCompression
if(fread(&bmih->biCompressionsizeof(DWORD)1fp)!=1)
{
printf(“Can not read biCompression in the info header.\n“);
fclose(fp);
return -1;
}
//读入biSizeImage
if(fread(&bmih->biSizeImagesizeof(DWORD)1fp)!=1)
{
printf(“Can not read biSizeImage in the info header.\n“);
fclos
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-03-23 22:51 Image\
目录 0 2014-03-23 22:51 Image\Bitmap\
文件 4016 2014-03-23 22:50 Image\Bitmap\Bitmap.vcxproj
文件 963 2014-03-23 22:50 Image\Bitmap\Bitmap.vcxproj.filters
文件 394 2014-03-20 15:39 Image\Bitmap\Bitmap.vcxproj.user
目录 0 2014-03-23 22:51 Image\Bitmap\Debug\
文件 103 2014-03-23 22:51 Image\Bitmap\Debug\Bitmap.lastbuildstate
文件 1214 2014-03-23 22:51 Image\Bitmap\Debug\Bitmap.log
文件 1282 2014-03-23 22:50 Image\Bitmap\Debug\cl.command.1.tlog
文件 21054 2014-03-23 22:50 Image\Bitmap\Debug\CL.read.1.tlog
文件 1116 2014-03-23 22:50 Image\Bitmap\Debug\CL.write.1.tlog
文件 50338 2014-03-23 22:50 Image\Bitmap\Debug\first_homework.obj
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
文件 2 2014-03-23 22:51 Image\Bitmap\Debug\li
............此处省略24个文件信息
- 上一篇:MFC实现2D地图编辑器
- 下一篇:socket C语言编写 客户端和服务器端程序
评论
共有 条评论