六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

VC++6.0將數(shù)據(jù)文件圖像化

[摘要]中國科學(xué)院光電技術(shù)研究所 亓 波  不同的圖像采集卡所存成的數(shù)據(jù)文件的格式是不同的,有的完全是數(shù)據(jù)的集合(如存成DAT 文件),而有的還要在數(shù)據(jù)前面加一個(gè)文件頭。下面就以DAT文件為例說明如何再現(xiàn)圖像。至于帶文件頭的數(shù)據(jù)文件,只要參考圖像采集卡的說明書,把單純的數(shù)據(jù)從文件中讀出來,問題也就迎刃而解...
中國科學(xué)院光電技術(shù)研究所 亓 波

  不同的圖像采集卡所存成的數(shù)據(jù)文件的格式是不同的,有的完全是數(shù)據(jù)的集合(如存成DAT 文件),而有的還要在數(shù)據(jù)前面加一個(gè)文件頭。下面就以DAT文件為例說明如何再現(xiàn)圖像。至于帶文件頭的數(shù)據(jù)文件,只要參考圖像采集卡的說明書,把單純的數(shù)據(jù)從文件中讀出來,問題也就迎刃而解了。
  1.將數(shù)據(jù)文件中的數(shù)據(jù)讀到一指針中。

  設(shè)采集圖像的大小為width*height 像素,用8階灰度表示。

#include “iostream.h"
#include “fstream.h"
double *filetobuf=new UINT[width*height];
fstream infile;
infile.open(filename,ios::in ios::binary);
for(int i=0;i< width*height;i++)
{
   infile.read((char *) (filetobuf+i),sizeof(UINT));
}

  這樣就把文件中的數(shù)據(jù)讀到了filetobuf指針中。

  2.利用Windows的API函數(shù) StretchDIBits()顯示圖像。

  StretchDIBits函數(shù)將設(shè)備無關(guān)位圖從原矩形拷貝到目的矩形,如果拷貝位圖與目的矩形大小不適應(yīng),則相應(yīng)地對(duì)位圖進(jìn)行擴(kuò)展或者縮小操作。如果函數(shù)調(diào)用成功,則返回已經(jīng)拷貝的掃描行數(shù)目,否則,函數(shù)返回值為GDI_ERRPR。函數(shù)原形如下:
  int StrechDIBits(HDC hdc,int Xdest, int Ydest,int
nDestWidth,int nDestHeight,int XSrc,int Ysrc, < brnSrcWidth,int nSrcWidth,
CONST VOID * lpBits,CONST BITMAPINFO
pBitsinfo,UINT iUsage,DWORD dwRop)
  其中,參數(shù)hdc 指定目的設(shè)備上下文句柄;參數(shù)Xdest 與Ydest分別以邏輯單位指定目的矩形左上角的X、 Y坐標(biāo);參數(shù)XSrc與YSrc則分別以像素點(diǎn)為單位,指定DIB位圖中源矩形原點(diǎn)的X、Y 坐標(biāo);參數(shù)nDestWidth、nDestHeight分別以邏輯單位指定目的矩形的寬度與高度; nSrcWidth、nSrcHeight分別以邏輯單位指定源矩形的寬度與高度;參數(shù)lpBits指向作為字節(jié)數(shù)組進(jìn)行存儲(chǔ)的DIB位圖位;lpBitsinfo指向BITMAPINFO結(jié)構(gòu);iUsage指定 BITMAPINFO結(jié)構(gòu)中是否存在bmiColor成員;如果存在該成員,則其中提供顏色的顯示RGB 值還是索引值;dwRop指定需要執(zhí)行的光柵操作,它指定如何組合目標(biāo)設(shè)備的當(dāng)前畫刷、

  源位圖以及目的位圖,從而產(chǎn)生新的圖像。

  因此在使用StrechDIBits前要進(jìn)行BITMAPINFOHEADER 對(duì)象的定義。

BITMAPINFOHEADER bmiHeader;
bmiHeader.biSize =sizeof(BITMAPINFOHEADER);
bmiHeader.biWidth = width;
bmiHeader.biHeight = height;
bmiHeader.biPlanes = 1;
bmiHeader.biBitCount = 24;
bmiHeader.biCompression = BI_RGB;
bmiHeader.biSizeImage = 0;
bmiHeader.biXPelsPerMeter = 0;
bmiHeader.biYPelsPerMeter = 0;
bmiHeader.biClrUsed = 0;
bmiHeader.biClrImportant = 0;
int lines = StretchDIBits(theDC->m_hDC,
0,0,
bmiHeader.biWidth,
hmiHeader.biHeight,
0,0,
bmiHeader.biWidth,
bmiHeader.biHeight,
buf,
(LPBITMAPINFO)&bmiHeader,
DIB_RGB_COLORS,
SRCCOPY);

  buf 應(yīng)為指向真彩色圖像數(shù)據(jù)部分的指針,因此必須對(duì) filetobuf加以轉(zhuǎn)化,把filetobuf對(duì)應(yīng)的每個(gè)像素的值分別付給buf的R、G、B部分。

buf=new  UINT[width*height*3];
for(int i=0;i<width*height;i++)
{
  *(buf+i*3)=*(filetobuf+i);
  *(buf+i*3+1)=*(filetobuf+i);
  *(buf+i*3+2)=*(filetobuf+i);
}

  經(jīng)過以上的變換便可以輕松顯示圖像了,注意圖像顯示 完后,要釋放已申請(qǐng)的指針。


主站蜘蛛池模板: 性荡视频播放器在线视频播放 | 午夜黄大色黄大片美女图片 | 亚洲精品免费网站 | 日日夜夜精品免费视频 | 亚洲影视天堂 | 五月天婷婷基地 | 午夜在线播放 | 亚洲成av人片在线观看无码 | 日本成a人片在线观看网址 日本草草影院 | 亚洲日韩中文第一精品 | 青青青在线视频人视频在线 | 午夜一区二区三区 | 日韩视频在线免费观看 | 日本精品久久久久久久久免费 | 欧美性xxxxx极品老少 | 午夜视频网站 | 一二三四在线观看免费高清网 | 色哟哟色院91精品网站 | 日日干夜夜草 | 特黄特色一级特色大片中文 | 中文区永久区乱码六区 | 日日摸夜夜添夜夜爽免费视频 | 亚洲天堂在线视频观看 | 亚洲人色 | 日日摸夜夜摸人人嗷嗷叫 | 午夜影皖 | 色啦啦影院 | 中文字幕日本一区波多野不卡 | 欧美在线观看网站 | 日本男女网站 | 在线免费观看a视频 | 亚洲一区二区三区精品影院 | 特一级黄| 十八成人网 | 色狠台湾色综合网站 | 永久免费观看午夜视频在线 | 天天干夜夜操 | 日韩精品欧美成人 | 日本综合欧美一区二区三区 | 四虎免费在线播放 | 四虎网站|