全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2024
推到 Plurk!
推到 Facebook!

如何將RGB值轉為灰階值?

尚未結案
黑輪
中階會員


發表:135
回覆:188
積分:64
註冊:2004-01-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-07 19:00:18 IP:140.124.xxx.xxx 未訂閱
我用DoubleBuffer->Canvas->Pixels[x][y]來找RGB值,但要如何找灰階值呢?(此時我已將圖片轉為灰階圖了)~~ 感謝各位的幫忙哦~~~
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-08 18:39:14 IP:61.231.xxx.xxx 未訂閱
黑輪您好: 試試
int Gray = GetRValue(DoubleBuffer->Canvas->Pixels[x][y]);
因為灰階圖片的RGB值都是一樣的,所以取其一即為灰階值 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
黑輪
中階會員


發表:135
回覆:188
積分:64
註冊:2004-01-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-09 13:20:43 IP:140.124.xxx.xxx 未訂閱
如果是彩色的圖片,用Pixels得到的是RGB值嗎?如果要從彩色圖片得灰階值呢?(是不是都要先變灰階的圖片,才可得到灰階值?) 感謝你的幫忙哦~~
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-09 13:53:21 IP:140.135.xxx.xxx 未訂閱
黑輪您好: 試試下面的code
  int R=GetRValue(DoubleBuffer->Canvas->Pixels[x][y]);
  int G=GetGValue(DoubleBuffer->Canvas->Pixels[x][y]);
  int B=GetBValue(DoubleBuffer->Canvas->Pixels[x][y]);
  int Gray = 0.299*R  0.587*G 0.114*B;
  ShowMessage(Gray);
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
黑輪
中階會員


發表:135
回覆:188
積分:64
註冊:2004-01-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-12 17:11:41 IP:140.124.xxx.xxx 未訂閱
感謝各位哦~~我已了解~~向下一個目標前進~~
foreseer
一般會員


發表:14
回覆:16
積分:6
註冊:2004-01-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-15 14:57:37 IP:61.70.xxx.xxx 未訂閱
引言: 我用DoubleBuffer->Canvas->Pixels[x][y]來找RGB值,但要如何找灰階值呢?(此時我已將圖片轉為灰階圖了)~~ 感謝各位的幫忙哦~~~
請問大大 用scanline的方法和DoubleBuffer->Canvas->Pixels[x][y]的方法是不是對於找rgb值是一樣的功能 那這些功能能用在哪些圖檔格式呢? 感謝您的回答 發表人 -
arisaka_matsuri
高階會員


發表:25
回覆:205
積分:231
註冊:2003-10-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-15 15:58:27 IP:218.166.xxx.xxx 未訂閱
foreseer你好: 兩個方法都可以,不過用TCanvas::Pixels的話很慢,TBitmap::ScanLine直接存取記憶體,所以快多了。至於圖檔格式,只要BCB能讀的到,放在Canva上的就可以用TCanvas::Pixels屬性來存取,放在TBitmap上的就可以用TBitmap::ScanLine來存取。 發表人 - arisaka_matsuri 於 2004/02/15 15:59:16
foreseer
一般會員


發表:14
回覆:16
積分:6
註冊:2004-01-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-16 02:09:42 IP:61.70.xxx.xxx 未訂閱
引言: foreseer你好: 兩個方法都可以,不過用TCanvas::Pixels的話很慢,TBitmap::ScanLine直接存取記憶體,所以快多了。至於圖檔格式,只要BCB能讀的到,放在Canva上的就可以用TCanvas::Pixels屬性來存取,放在TBitmap上的就可以用TBitmap::ScanLine來存取。 發表人 - arisaka_matsuri 於 2004/02/15 15:59:16
謝謝arisaka_matsuri 您的解釋^^我明白了
系統時間:2024-05-05 16:20:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!