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

請問關於取灰階度....

尚未結案
xdio2
一般會員


發表:60
回覆:29
積分:17
註冊:2004-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-20 22:24:20 IP:61.59.xxx.xxx 未訂閱
請問一下大家灰階度0~255應該只是8bit bmp圖檔的吧? 可是我看很多程式要做Histogram Equalization時 一開始要做的灰階度分布矩陣 他矩陣就只假設0~ 255個灰階呢? 這不是只能適用於8bit嗎 還是說有其他的道理呢 請大家賜教一下? 謝謝~
arisaka_matsuri
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-21 09:44:33 IP:140.113.xxx.xxx 未訂閱
dear xdio2: 沒錯~因為8bit的灰階最多只表現0~255的灰階值,所以在統計時就只用到256個元素的陣列,當然也只適用在8bit的情況。話又說回來,會用到超過8bit灰階的情況應該很少很少吧~
ben.huang
一般會員


發表:2
回覆:18
積分:4
註冊:2004-09-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-21 10:31:04 IP:61.63.xxx.xxx 未訂閱
是呀 0~255本來就是 8bit的灰階度, 但是也有又一種用法,如果設24bit,又要展現出灰階度, 那就R=B=G就好啦~~~也是出來灰階度的效果~~~ 但RGB在設定時都要設成GRAY才行。
xdio2
一般會員


發表:60
回覆:29
積分:17
註冊:2004-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-21 13:53:37 IP:61.59.xxx.xxx 未訂閱
引言: dear xdio2: 沒錯~因為8bit的灰階最多只表現0~255的灰階值,所以在統計時就只用到256個元素的陣列,當然也只適用在8bit的情況。話又說回來,會用到超過8bit灰階的情況應該很少很少吧~
那個這位大大我想問的是 似乎有些處理24bit像素時的範例 他們也是把0~255當作標準來看 像是精華區中泰祥版主的二值化,請見我打紅色的地方 他這個是只能處理8bit嗎? 因為他的邊緣偵測是採用24bit來處理 所以我想他這個二值化應該也是處理24bit圖 但是若是24bit 他怎麼把大於門檻值的像素設為255呢? 小於門檻值設為0? 看似灰階值只有0~255 24bit最暗的像素應該不是255吧 請大大指教~ 感謝
 
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 if (Image1->Picture->Bitmap->Empty==true)
 ShowMessage("請載入圖檔!!");
 Graphics::TBitmap *Bmp = new Graphics::TBitmap();
 Byte *ptr;
 int r,g,b;
 int gray;
 int i,j;
 int threshold;
 threshold=ScrollBar1->Position;
 Edit1->Text=ScrollBar1->Position;
 Bmp->Assign(Image1->Picture->Bitmap);
 for(j=0;jHeight;j  )
 {
  ptr = (Byte *)Bmp->ScanLine[j];
  for(i=0;iWidth;i  )
  {
   b=ptr[i*3];
   g=ptr[i*3 1];
   r=ptr[i*3 2];
   gray=0.299*r  0.587*g 0.114*b;
   
   if(gray>threshold)
    gray=255;
   else
    gray=0;       ptr[i*3]=(Byte)gray;
   ptr[i*3 1]=(Byte)gray;
   ptr[i*3 2]=(Byte)gray;
  }
 }
Image2->Picture->Assign(Bmp);
}
xdio2
一般會員


發表:60
回覆:29
積分:17
註冊:2004-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-21 14:34:30 IP:61.59.xxx.xxx 未訂閱
那個...剛好像問了蠢問題 因為一時觀念錯亂 現在想跟大家確認一下 24bit的圖裡面的RGB各是佔了1Byte 而每一Byte可表達的最大數為255 所以說以24bit的圖來看 當他的RGB各為255 255 255 即為最暗的黑色沒錯吧? 大部分處理圖形都是以24bit為基準吧? 想請問一下大家 若是要處理8bit的圖 他的RGB各佔幾bit呢? 若是黑色RGB各應該是啥值呢 謝謝大家~
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-21 14:57:42 IP:220.135.xxx.xxx 未訂閱
xdio2你好:    RGB是一種顏色表示方式,如果要在windows系統顯示顏色,就是 要用RGB的方法,但在一般影像處理書籍上,所有理論都不是建立 在RGB的值域上。而是將顏色以訊號強度表示,針對訊號強度做 處理。 taishyang使用的方法
gray=0.299*r  0.587*g 0.114*b;
是將RGB轉成YUV,Y就是gray,物理意義可以代表訊號強度,值域0~255(最暗~最亮)
引言: 那個這位大大我想問的是 似乎有些處理24bit像素時的範例 他們也是把0~255當作標準來看 像是精華區中泰祥版主的二值化,請見我打紅色的地方 他這個是只能處理8bit嗎? 因為他的邊緣偵測是採用24bit來處理 所以我想他這個二值化應該也是處理24bit圖 但是若是24bit 他怎麼把大於門檻值的像素設為255呢? 小於門檻值設為0? 看似灰階值只有0~255 24bit最暗的像素應該不是255吧 請大大指教~ 感謝
arisaka_matsuri
高階會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-21 17:56:34 IP:140.113.xxx.xxx 未訂閱
dear xdio2:
引言: 所以說以24bit的圖來看 當他的RGB各為255 255 255 即為最暗的黑色沒錯吧?
把數值當「強度」來想,所以RGB各為255表現出來的是白色~
引言: 大部分處理圖形都是以24bit為基準吧?
看情況,如果要處理彩色,當然是用24bit的囉~畢竟這是一個比較容易處理也比較直接(對電腦來說)的格式
引言: 若是要處理8bit的圖 他的RGB各佔幾bit呢? 若是黑色RGB各應該是啥值呢
對8bit的影像來說,多半用在表現灰階上。彩色的應用極少,因為是利用索引的方式儲存,不方便作影像處理的計算。如果硬要做,最後還是要換到24bit的RGB。
系統時間:2024-05-14 8:55:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!