91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-06-28
  • 語言: C/C++
  • 標(biāo)簽:

資源簡介

C語言,簡單的實(shí)現(xiàn)灰度直方圖的統(tǒng)計(jì)。對讀取的數(shù)字圖像進(jìn)行灰度直方圖統(tǒng)計(jì),獲得該圖像的灰度直方圖。以文本方式顯示統(tǒng)計(jì)得到的灰度直方圖。

資源截圖

代碼片段和文件信息

#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(“像素位數(shù):%d\n“InfoHeader.biBitCount);

//讀調(diào)色板
if(InfoHeader.biBitCount==8)//因?yàn)槌?4bit的圖片都有調(diào)色板
{
fread((char?*)Rgb1sizeof(RGBQUAD)*256fp);
}

????//為數(shù)據(jù)分配空間
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);

//寫調(diào)色板
if(InfoHeader.biBitCount==8)//因?yàn)槌?4bit的圖片都有調(diào)色板
{
fwrite((char?*)Rgb1sizeof(RGBQUAD)*256fp);
}

//寫圖片數(shù)據(jù)
fwrite((char*)pImg1ImgSizefp);

fclose(fp);

return?0;
}


void?ReverseGraylevel()
{
//反轉(zhuǎn)處理
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轉(zhuǎn)換到Hist
Hist[pImg[i]]++;
}

}


void?main()
{



????//菜單程序部分
int?a=0;

printf(“請選擇您所需操作。\n?請輸入以下項(xiàng)目標(biāo)號(hào)實(shí)現(xiàn)相關(guān)操作。\n1、圖像反轉(zhuǎn)\n2、灰度直方圖\n3、圖片另存為\n“);
scanf(“%d“a);
switch(a)
{
case?1:
ReverseGraylevel();
if(read(“d:\\car8b-g.bmp“)? return;
break;

case?2:
Histogram();
break;

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

}


if(pImg)
free(pImg);
}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件????????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


評論

共有 條評論