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

[BCB問題]如何在二值化圖找像素

尚未結案
cwj0123
一般會員


發表:10
回覆:5
積分:3
註冊:2004-06-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-07 20:04:35 IP:61.230.xxx.xxx 未訂閱
我己把彩色點變成二值化點了,但想找出其中某一點的像素是多少,不知應該如何做才行。請幫幫我~~~
KENI_LIN
中階會員


發表:86
回覆:267
積分:90
註冊:2004-05-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-08 09:12:42 IP:210.208.xxx.xxx 未訂閱
你好,像素主要就是要有座標點及RGB值,你可以參考以下"如何用滑鼠顯示RGB"討論區
------
Keni Lin
cwj0123
一般會員


發表:10
回覆:5
積分:3
註冊:2004-06-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-12 01:44:15 IP:61.230.xxx.xxx 未訂閱
KENI_LIN您好: 我想問您pixel和R,G,B三值有沒有差呢???如果我要顯示pixel大小為多少要如何做呢???如果您知道的話請您教教我好嗎!!!
KENI_LIN
中階會員


發表:86
回覆:267
積分:90
註冊:2004-05-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-12 19:05:46 IP:220.228.xxx.xxx 未訂閱
請再參考一次討論區http://delphi.ktop.com.tw/topic.php?TOPIC_ID=55107 下面這一個程式,就可以顯示出座標及RGB的值 void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,       int X, int Y) {   TColor a = Image1->Canvas->Pixels[X][Y];   Label6->Caption = X;  //X座標值,顯示在Label6   Label7->Caption = Y;  //Y座標值,顯示在Label7   unsigned char b;   b = char(a);   Label8->Caption = int(b); //R值,顯示在Label8    a >>= 8;   b = char(a);   Label9->Caption = int(b); //G值,顯示在Label9    a >>= 8;   b = char(a);   Label10->Caption = int(b); //R值,顯示在Label10  } 所以使用這個程式前,就要建立好Label6~10的物件(如果你是初學者,請參考C++Builder的教科書) //-------------------------------------------------------------------    Pixels本身是一個0~255像素資料,所以一般我們做顏色辨識時,需將RGB做變量處理,假設紅色的變化量在000000FF位址,綠色要往左移動8bit變為0000FF00,藍色又要左移8bit為00FF0000,所以如果想把R,G,B參數抓出來,可參考以下程式:    void __fastcall TForm1::Button2Click(TObject *Sender) {   int X1,Y1;   X1= StrToInt(Edit1->Text);   Y1= StrToInt(Edit2->Text);   TColor a = Image1->Canvas->Pixels[X1][Y1];   unsigned char R,G,B;   R = char(a);   Label11->Caption = int(R); //R值變量,存放在int(R)    a >>= 8;    G = char(a);   Label12->Caption = int(G); //G值變量,存放在int(G)    a >>= 8;   B = char(a);   Label13->Caption = int(B); //B值變量,存放在int(B)       if(int(R) > 254)    {    ShowMessage("紅色");    }   if(int(G) > 254)    {    ShowMessage("綠色");    }    if(int(B) > 254)    {    ShowMessage("藍色");    }   else   {   ShowMessage("不在辨識範圍內");    } }    當然也可以判斷其它顏色,如黃色的R=255.G=255.B=0,判斷式改成 if(int(R) > 254 && int(G)>254)    {    ShowMessage("黃色");    } 所以不同的顏色,是由不同的三色原R,G,B(紅,綠,藍)組合而成的
------
Keni Lin
chuanghs
一般會員


發表:7
回覆:9
積分:3
註冊:2004-08-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-13 00:31:39 IP:218.164.xxx.xxx 未訂閱
我想:他是要問如果有一塊區域(例如是亮點),則他有幾個pixel?? 這要如何計算呢??
KENI_LIN
中階會員


發表:86
回覆:267
積分:90
註冊:2004-05-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-13 09:58:47 IP:220.228.xxx.xxx 未訂閱
謝謝chuanghs的提醒!下列是我的想法: > 如果是"有一塊區域(例如是亮點),則他有幾個 >
------
Keni Lin
KENI_LIN
中階會員


發表:86
回覆:267
積分:90
註冊:2004-05-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-13 14:17:23 IP:220.228.xxx.xxx 未訂閱
再補充說明一下,經過"彩色點變成二值化點"的處理後,如果要找出"從其中某一點的像素是多少",應該就只剩下白色(R=G=B=255)和黑色(R=G=B=0)兩種不是"0"就是"1"的圖像結果!
------
Keni Lin
keikojason
初階會員


發表:37
回覆:63
積分:45
註冊:2004-05-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-17 15:54:09 IP:218.169.xxx.xxx 未訂閱
RGB(255, 0, 0)為紅色  RGB(0, 255, 0)為綠色  RGB(0, 0, 255)藍色 每一個Pixel都是由這RGB形成而依照每一個Pixel要什麼顏色則RGB(?,?,?)數值就會不同......等等.. RGB (255,0,255)為紫色 RGB (255,255,255)為白色 RGB (0,0,0)為黑色  希望這對你有所幫助~~~大家互相幫忙..^^
系統時間:2024-05-21 4:00:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!