资源简介

用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\link-cvtres.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link-cvtres.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link-rc.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link-rc.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.11480-cvtres.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.11480-cvtres.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.11480-rc.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.11480-rc.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.11480.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.11480.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.6184-cvtres.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.6184-cvtres.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.6184-rc.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.6184-rc.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.6184.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.6184.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.8680-cvtres.read.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.8680-cvtres.write.1.tlog
     文件           2  2014-03-23 22:51  Image\Bitmap\Debug\link.8680-rc.read.1.tlog
............此处省略24个文件信息

评论

共有 条评论