• 大小: 1KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-28
  • 语言: C/C++
  • 标签:

资源简介

C语言,简单的实现灰度直方图的统计。对读取的数字图像进行灰度直方图统计,获得该图像的灰度直方图。以文本方式显示统计得到的灰度直方图。

资源截图

代码片段和文件信息

#include 
#include 
#include 

BITMAPFILEHEADER FileHeader;
BITMAPINFOHEADER InfoHeader;
RGBQUAD Rgb[256];
BYTE *pImg = NULL;
int ImgSize;
//Height=InfoHeader.biHeight;
//Width=InfoHeader.biWidth;

BOOL read(char* filename)
{
FILE  * fp;
fp=fopen(filename “rb“);
if(fp == NULL)
{
printf(“没有找到该文件\n“);
return -1;
}
//读文件头
fread((char *)&FileHeader 1 sizeof(BITMAPFILEHEADER) fp);
printf(“文件长度:%d\n“FileHeader.bfSize);
printf(“偏移量:%d\n“FileHeader.bfOffBits);

//读信息头
fread((char *)&InfoHeader 1 sizeof(BITMAPINFOHEADER) fp);
printf(“图像宽度:%d\n“InfoHeader.biWidth);
printf(“图像高度:%d\n“InfoHeader.biHeight);
printf(“像素位数:%d\n“InfoHeader.biBitCount);

//读调色板
if(InfoHeader.biBitCount==8)//因为除了24bit的图片都有调色板
{
fread((char *)Rgb1sizeof(RGBQUAD)*256fp);
}

    //为数据分配空间
ImgSize=FileHeader.bfSize-FileHeader.bfOffBits;
if(pImg != NULL)
free(pImg);

pImg=(BYTE *)malloc(ImgSize);
fread((char*)pImg1ImgSizefp);

fclose(fp);

return 0;
}

BOOL write(char* filename)
{
    FILE* fp=fopen(filename “wb“);
if(fp == NULL)
{
printf(“没有找到该文件\n“);
return -1;
}
fwrite((char *)&FileHeader 1 sizeof(BITMAPFILEHEADER) fp);
fwrite((char *)&InfoHeader 1 sizeof(BITMAPINFOHEADER) fp);

//写调色板
if(InfoHeader.biBitCount==8)//因为除了24bit的图片都有调色板
{
fwrite((char *)Rgb1sizeof(RGBQUAD)*256fp);
}

//写图片数据
fwrite((char*)pImg1ImgSizefp);

fclose(fp);

return 0;
}


void ReverseGraylevel()
{
//反转处理
for(int i=0;i {
pImg[i]=255-pImg[i];
}
}

int Hist[256];

void Histogram()
{

memset(Hist 0 sizeof(Hist));
for(int i=0; i {
    //pImg转换到Hist
Hist[pImg[i]]++;
}

}


void main()
{



    //菜单程序部分
int a=0;

printf(“请选择您所需操作。\n 请输入以下项目标号实现相关操作。\n1、图像反转\n2、灰度直方图\n3、图片另存为\n“);
scanf(“%d“a);
switch(a)
{
case 1:
ReverseGraylevel();
if(read(“d:\\car8b-g.bmp“) < 0)
return;
break;

case 2:
Histogram();
break;

case 3:
write(“f:\\new-car.bmp“);
break;

}


if(pImg)
free(pImg);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        535  2011-10-19 22:08  bmp_1\bmp_1.dsw

     文件       2291  2011-10-20 23:43  bmp_1\bpm_1.cpp

     目录          0  2011-10-20 17:20  bmp_1

----------- ---------  ---------- -----  ----

                 2826                    3


评论

共有 条评论