線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:918
推到 Plurk!
推到 Facebook!

如何顯示 two bytes 影像?

尚未結案
tracychen
一般會員


發表:7
回覆:9
積分:3
註冊:2003-08-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-29 21:12:40 IP:211.21.xxx.xxx 未訂閱
各位大大: 我利用CCD camera取了5張影像作運算 影像格式:12 bits灰階, 1024*1024 為了方便利用TImage元件直接將影像load進來運算 也讓user可以看到影像 我必須將12 bits(0~4095)的資料轉成8 bits(0~255) 但卻犧牲了4bits的dynamic range, 如此也會影響我在後來運算的結果! 請問有其他元件可以直接load 2 bytes的影像嗎? 或是有其他的做法? 謝謝各位大大的幫忙!
markov
中階會員


發表:55
回覆:135
積分:53
註冊:2003-12-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-30 09:12:06 IP:211.22.xxx.xxx 未訂閱
Image1->Picture->Bitmap->HandleType = bmDIB; Image1->Picture->Bitmap->PixelFormat = pf16bit; 即可
tracychen
一般會員


發表:7
回覆:9
積分:3
註冊:2003-08-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-30 18:29:17 IP:211.21.xxx.xxx 未訂閱
謝謝Markov的回應! 對不起我忘了說明我所要load的是*.raw的data 請問根據上面所說的設定 TImage是否有限定只能load某些格式的image data? 因為我的data是存成*.raw(沒有檔頭) 利用LoadFromFile函式 會出現"Bitmap image is not valid"???
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-30 18:39:08 IP:140.135.xxx.xxx 未訂閱
tracychen您好: 您可以參考下面連結,修改成您所需要的樣子 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=38156 【發表】讀RAW Date的影像 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
tracychen
一般會員


發表:7
回覆:9
積分:3
註冊:2003-08-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-31 14:09:35 IP:211.21.xxx.xxx 未訂閱
謝謝taishyang版主的回應! 我的做法如下: //------------------------------------------------------------------- void TfmImageViewer::LoadFromFile(String FileName) { m_FileName = FileName; StatusBar1->Panels->Items[0]->Text = ExtractFileName(FileName); //2003/12/31 tracy for read raw data //imgSrc->Picture->LoadFromFile(FileName); //load bmp unsigned short *data; data = new unsigned short [m_ImgWidth*m_ImgHeight]; FILE *fin; if ((fin = fopen(m_FileName.c_str(),"rb"))==NULL) { ShowMessage("Can not open" FileName "!"); return; } fread(data, sizeof(unsigned short)*m_ImgWidth*m_ImgHeight, 1, fin); fclose(fin); //Show raw data Show2BytesImage(data, m_ImgWidth, m_ImgHeight, imgSrc); if (data) delete [] data; data = NULL; } //-------------------------------------------------------------------- void TfmImageViewer::Show2BytesImage(unsigned short *data, int imgW, int imgH, TImage *Image) { byte *ptr; for (int j = 0; j < imgH; j) { ptr = (byte*)Image->Picture->Bitmap->ScanLine[j]; for (int i = 0; i < imgW; i) ptr[i] = data[j*imgW i]/16; } Image->Refresh(); } //-------------------------------------------------------------------- 想請問我以fopen以及fread的方式讀檔 是否有什麼優劣之處?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-31 14:32:04 IP:140.135.xxx.xxx 未訂閱
tracychen您好:
引言: 想請問我以fopen以及fread的方式讀檔 是否有什麼優劣之處?
小弟的經驗尚嫩,不敢評論其優劣,方便習慣好用就好< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~
系統時間:2024-07-06 18:46:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!