-
大小: 9.38MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-10-09
- 語(yǔ)言: C/C++
- 標(biāo)簽: Visual+C++??
資源簡(jiǎn)介
Visual+C++ 圖像瀏覽器 二值化 直方圖 等等

代碼片段和文件信息
#include?“stdio.h“
#include?“Windows.h“
//幾個(gè)全局變量,存放讀入圖像的位圖數(shù)據(jù)、寬、高、顏色表及每像素所占位數(shù)(比特)?
//此處定義全局變量主要為了后面的圖像數(shù)據(jù)訪問(wèn)及圖像存儲(chǔ)作準(zhǔn)備
unsigned?char?*pBmpBuf;//讀入圖像數(shù)據(jù)的指針
int?bmpWidth;//圖像的寬
int?bmpHeight;//圖像的高
RGBQUAD?*pColorTable;//顏色表指針
int?biBitCount;//圖像類型
/***********************************************************************
*?函數(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ù)等信息,
*??????將其寫(xiě)到指定文件中
***********************************************************************/
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)制寫(xiě)的方式打開(kāi)文件
FILE?*fp=fopen(bmpName“wb“);
if(fp==0)?return?0;
//申請(qǐng)位圖文件頭結(jié)構(gòu)變量,填寫(xiě)文件頭信息
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是圖像文件前三個(gè)部分所需空間之和
fileHead.bfOffBits=54+colorTablesize;
//寫(xiě)文件頭進(jìn)文件
fwrite(&fileHead?sizeof(BITMAPFILEHEADER)1?fp);
//申請(qǐng)位圖信息頭結(jié)構(gòu)變量,填寫(xiě)信息頭信息
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.biXPelsPerMeter=0;
hea
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????230??2008-07-02?13:09??光盤文件\Readme.txt
????..A..H.?????19968??2008-06-21?04:00??光盤文件\各章測(cè)試圖\第一章\Thumbs.db
?????文件?????350456??2007-09-21?14:31??光盤文件\各章測(cè)試圖\第一章\圖1-10數(shù)據(jù)修改后圖像對(duì)比?a.bmp
?????文件?????810056??2007-09-21?09:34??光盤文件\各章測(cè)試圖\第一章\故宮角樓.bmp
?????文件?????117880??2007-09-21?14:32??光盤文件\各章測(cè)試圖\第一章\狗.bmp
?????文件????1931856??2007-09-21?14:51??光盤文件\各章測(cè)試圖\第一章\鳥(niǎo).bmp
????..A..H.?????25088??2008-06-21?04:00??光盤文件\各章測(cè)試圖\第七章\Thumbs.db
?????文件?????196664??2007-06-18?15:21??光盤文件\各章測(cè)試圖\第七章\圖7-12a.bmp
?????文件?????263222??2007-06-21?20:43??光盤文件\各章測(cè)試圖\第七章\圖7-13a.bmp
?????文件?????196662??2008-06-10?10:44??光盤文件\各章測(cè)試圖\第七章\圖7-14a.bmp
?????文件??????77936??2007-04-04?17:09??光盤文件\各章測(cè)試圖\第七章\圖7-2.bmp
?????文件??????66616??2007-06-18?15:30??光盤文件\各章測(cè)試圖\第七章\圖7-3a_8bit.bmp
?????文件??????66614??2007-03-26?23:37??光盤文件\各章測(cè)試圖\第七章\圖7-5a.bmp
?????文件???????6465??2008-06-10?09:24??光盤文件\各章測(cè)試圖\第七章\圖7-6a.jpg
?????文件?????139896??2007-06-21?20:25??光盤文件\各章測(cè)試圖\第七章\圖7-8a.bmp
????..A..H.?????17920??2008-06-21?04:00??光盤文件\各章測(cè)試圖\第三章\Thumbs.db
?????文件?????309656??2008-01-18?14:55??光盤文件\各章測(cè)試圖\第三章\圖3-5圖像平移效果示意圖?a.bmp
?????文件?????375656??2008-06-07?04:41??光盤文件\各章測(cè)試圖\第三章\圖3-6圖像轉(zhuǎn)置效果示意圖?a.bmp
?????文件?????309656??2008-06-07?04:41??光盤文件\各章測(cè)試圖\第三章\圖3-7?3-14?a.bmp
????..A..H.?????47616??2008-06-21?04:00??光盤文件\各章測(cè)試圖\第九章\Thumbs.db
?????文件??????17464??2005-03-24?21:37??光盤文件\各章測(cè)試圖\第九章\圖9-5a.bmp
?????文件??????17464??2005-03-24?17:37??光盤文件\各章測(cè)試圖\第九章\圖9-5b.bmp
????..A..H.?????22528??2008-06-21?04:00??光盤文件\各章測(cè)試圖\第二章\Thumbs.db
?????文件?????320456??2008-06-07?04:40??光盤文件\各章測(cè)試圖\第二章\圖2-13?對(duì)數(shù)拉伸和指數(shù)拉伸效果圖?a.bmp
?????文件?????121080??2008-06-07?04:39??光盤文件\各章測(cè)試圖\第二章\圖2-16直方圖均衡前后圖像及其直方圖變化對(duì)比圖?a.bmp
?????文件????1360856??2008-06-07?04:40??光盤文件\各章測(cè)試圖\第二章\圖2-5?負(fù)相操作結(jié)果?a.bmp
?????文件?????315656??2008-06-07?04:40??光盤文件\各章測(cè)試圖\第二章\圖2-9?線性拉伸運(yùn)行結(jié)果?a.bmp
?????文件?????340856??2008-01-18?14:30??光盤文件\各章測(cè)試圖\第二章\鼠.bmp
?????文件??????66614??2007-12-12?14:41??光盤文件\各章測(cè)試圖\第五章\5-2flower256x256.bmp
?????文件??????66614??2007-12-12?14:48??光盤文件\各章測(cè)試圖\第五章\5-2flower椒鹽噪聲.bmp
............此處省略375個(gè)文件信息
評(píng)論
共有 條評(píng)論