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

如何判斷彩色或灰階圖?

尚未結案
cmusic
一般會員


發表:8
回覆:1
積分:1
註冊:2005-10-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-12 11:18:39 IP:140.125.xxx.xxx 訂閱
各位前輩好
小弟想要寫一隻程式
在開啟圖片後
如果是灰階圖就連代顯示直方圖
如果是彩色圖就先轉灰階再顯示直方圖

因為彩色圖片與灰階圖片的處理流程不太一樣
所以想要讓程式能夠自行判斷

不知道這樣該怎麼寫?
fnk
高階會員


發表:40
回覆:149
積分:102
註冊:2004-01-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-06-13 12:45:05 IP:60.248.xxx.xxx 訂閱

1.
不論彩色或灰階都經過轉灰階再秀直方圖...
因為灰階的RGB是相同的值...經過灰階化...(R G B)/3 ...還是灰階...並不會有任何改變...

2.
若要更好的方式...可以去參考bitmap會有相關的資訊...來知道圖片當時是以彩色或灰階儲存的...
請看TBitmap的PixelFormat

Indicates the bit format of the bitmap image, specifying how the image is displayed and how the pixels of the bitmap image are stored in memory.

enum TPixelFormat {pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom};


比如 pf8bit 就是灰階的...若pf16.pf24.pf32...都是彩色的...

給你參考...
achillean
一般會員


發表:16
回覆:23
積分:7
註冊:2004-08-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-06-13 15:41:25 IP:218.210.xxx.xxx 訂閱
bmp影像,只有使用者給予的灰階調色盤,沒有灰階影像
所以你得看你輸入的資料來斷定什麼叫做「灰階影像」
一般而言,pf8bit就是灰階影像

Graphics::TBitmap *pbmp;
所以你可以用pbmp->PixelFormat == pf8bit來判斷

而pf24bit( or 16bit?)以上的格式bmp檔案,BCB會使用他自己的調色盤
所以在這以上的格式,出來的影像顏色都是一樣的
而pf8bit影像再沒有設定過調色盤的狀態下,BCB預設是256色彩色

妳的問題可以用Byte *ptr去讀pbmp->ScanLine[i]
慢慢掃描得到像素值,搜尋ScanLine站內文章很多

或是直接用int value = pbmp->Canvas->Pixels[x][y] % 256,不需要管pixel format是何者
但是如果要精確的彩色轉灰階值就要分別對r,g,b(BCB順率為B,G,R)加權處理轉換到灰階值
hipig
高階會員


發表:31
回覆:75
積分:111
註冊:2007-01-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-06-17 22:42:49 IP:220.133.xxx.xxx 未訂閱
以PixelFormat判斷最為簡便的方式
但要特別注意8bit圖像有兩種
一種是灰階
另一種是256色(8色16色也算)
此外PixelFormat對二進位單色圖同樣消化不良
建議以檔頭來作判斷
此外jpg格式在bcb6中只有彩色沒有灰階顯示

我在http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=86534
有利用PixelFormat判斷開圖是否彩色進而要求轉成灰階
編輯記錄
hipig 重新編輯於 2008-06-17 22:44:41, 註解 無‧
coolbabexx15
一般會員


發表:0
回覆:5
積分:1
註冊:2015-05-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2018-08-15 17:52:09 IP:168.106.xxx.xxx 未訂閱
fav link:

搬屋公司
Oh I see
編輯記錄
coolbabexx15 重新編輯於 2018-09-18 11:59:36, 註解 無‧
系統時間:2024-04-28 17:30:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!