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

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

資源簡(jiǎn)介

數(shù)字圖像處理課程,直方圖均衡化C++代碼的實(shí)現(xiàn)

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include??
#include?
#include?
#include?

using?namespace?std;

unsigned?char?*pBmpBuf;//讀入圖像數(shù)據(jù)的指針
int?bmpWidth;//圖像的寬
int?bmpHeight;//圖像的高
RGBQUAD?*pColorTable;//顏色表指針
int?biBitCount;//圖像類型,每像素位數(shù)?根據(jù)BMP文件結(jié)構(gòu),

/****************************************
*******************************
*?函數(shù)名稱:
*?????readBmp()
*
*函數(shù)參數(shù):
*????char?*bmpName?-文件名字及路徑
*
*返回值:
*????0為失敗,1為成功
*
*說(shuō)明:給定一個(gè)圖像文件名及其路徑,讀圖像的位圖數(shù)據(jù)、寬、高、顏色表及每像素
*??????位數(shù)等數(shù)據(jù)進(jìn)內(nèi)存,存放在相應(yīng)的全局變量中
****************************************
*******************************/
bool?readBmp(char?*bmpName)
{
//二進(jìn)制讀方式打開(kāi)指定的圖像文件
FILE?*fp=fopen(bmpName“rb“);
if(fp==0)?return?0;


//跳過(guò)位圖文件頭結(jié)構(gòu)BITMAPFILEHEADER
fseek(fp?sizeof(BITMAPFILEHEADER)0);?
//定義位圖信息頭結(jié)構(gòu)變量,讀取位圖信息頭進(jìn)內(nèi)存,
//存放在變量head中
BITMAPINFOHEADER?head;?
fread(&head?sizeof(BITMAPINFOHEADER)?1fp);?//獲取圖像寬、高、每像素所占位數(shù)等信息
bmpWidth?=?head.biWidth;
bmpHeight?=?head.biHeight;
biBitCount?=?head.biBitCount;?//定義變量,計(jì)算圖像每行像素所占的字節(jié)數(shù)(必須是4的倍數(shù))
int?lineByte=(bmpWidth?*?biBitCount/8+3)/4*4;?//灰度圖像有顏色表,且顏色表表項(xiàng)為256
if(biBitCount==8){
//申請(qǐng)顏色表所需要的空間,讀顏色表進(jìn)內(nèi)存
pColorTable=new?RGBQUAD[256];
fread(pColorTablesizeof(RGBQUAD)256fp);
}?//申請(qǐng)位圖數(shù)據(jù)所需要的空間,讀位圖數(shù)據(jù)進(jìn)內(nèi)存
pBmpBuf=new?unsigned?char[lineByte?*?bmpHeight];
fread(pBmpBuf1lineByte?*?bmpHeightfp);?//關(guān)閉文件
fclose(fp);?
return?1;
}?

/*****************************************
*?函數(shù)名稱:
*?????saveBmp()
*
*函數(shù)參數(shù):
*????char?*bmpName-文件名字及路徑
*????unsigned?char?*imgBuf-待存盤的位圖數(shù)據(jù)
*????int?width-以像素為單位待存盤位圖的寬
*????int?height-以像素為單位待存盤位圖高
*????int?biBitCount-每像素所占位數(shù)
*????RGBQUAD?*pColorTable-顏色表指針?*返回值:
*????0為失敗,1為成功
*
*說(shuō)明:給定一個(gè)圖像位圖數(shù)據(jù)、寬、高、顏色表
指針及每像素所占的位數(shù)等信息,
*??????將其寫到指定文件中
******************************************
*****************************/
bool?saveBmp(char?*bmpName?unsigned?char?
?*imgBuf?int?width?int?height?
?int?biBitCount?RGBQUAD?*pColorTable)
{
//如果位圖數(shù)據(jù)指針為0,則沒(méi)有數(shù)據(jù)傳入,函數(shù)返回
if(!imgBuf)
return?0;?//顏色表大小,以字節(jié)為單位,灰度圖像顏色表 為1024字節(jié),彩色圖像顏色表大小為0
int?colorTablesize=0;
if(biBitCount==8)
colorTablesize=1024;?//待存儲(chǔ)圖像數(shù)據(jù)每行字節(jié)數(shù)為4的倍數(shù)
int?lineByte=(width?*?biBitCount/8+3)/4*4;?//以二進(jìn)制寫的方式打開(kāi)文件
FILE?*fp=fopen(bmpName“wb“);
if(fp==0)?return?0;?//申請(qǐng)位圖文件頭結(jié)構(gòu)變量,填寫文件頭信息
BITMAPFILEHEADER?fileHead;
fileHead.bfType?=?0x4D42;//bmp類型?//bfSize是圖像文件4個(gè)組成部分之和
fileHead.bfSize=?sizeof(BITMAPFILEHEADER)
+?sizeof(BITMAPINFOHEADER)
+?colorTablesize?+?lineByte*height;
fileHead.bfReserved1?=?0;
fileHead.bfReserved2?=?0;?//bfOffBits是圖像文件前3個(gè)部分所需空間之和
fileHead.bfOffBits=54+colorTablesize;?//寫文件頭進(jìn)文件
fwrite(&fileHead?sizeof(BITMAPFILEHEADER)1?fp);?//申請(qǐng)位圖信息頭結(jié)構(gòu)變量,填寫信息頭信息
BITMAPINFOHEADER?head;?
head.biBitCount=biBitCount;
head.biClrImportant=0;
head.biClrUsed=0;
head.biCompression=0;
head.biHeight=height;
head.biPlanes=1;
head.biSize=40;
head.biSizeImage=lineByte*height;
head.biWidth=width;
head.biXPelsPe

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????66614??2013-06-06?15:55??新建文件夾\1.bmp
?????文件???????10229??2013-07-04?11:18??新建文件夾\main.cpp
?????目錄???????????0??2013-07-04?11:17??新建文件夾\

評(píng)論

共有 條評(píng)論