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

關於顏色的問題

尚未結案
visuala
一般會員


發表:33
回覆:39
積分:14
註冊:2003-04-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-10 17:26:31 IP:218.170.xxx.xxx 未訂閱
如果我知道一張圖上有固定區域,並且這些區域都有一定的顏色(Ex:下圖)     那我讀進圖片進來之後,要怎麼樣定出這些顏色所在的區域呢... 我的做法是要先定區這些顏色的區域,然後我要加入另外一種顏色到畫面中, 依照之前所定出的顏色範圍,就可以馬上知道新介入的顏色位於哪個顏色的區域內. 我不知道該怎麼樣分辨出顏色 然後正確存入他們區域內的座標 請問該往什麼方向做呢.. 麻煩指點我一下~~多謝^^ 發表人 - visuala 於 2003/11/10 17:33:06
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-10 20:02:59 IP:140.135.xxx.xxx 未訂閱
visuala您好: 不太了解您的意思,您是要知道圖中黃,綠,紅,棕分別在圖中哪個位置嗎?    順心
visuala
一般會員


發表:33
回覆:39
積分:14
註冊:2003-04-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-10 20:33:07 IP:218.174.xxx.xxx 未訂閱
引言: visuala您好: 不太了解您的意思,您是要知道圖中黃,綠,紅,棕分別在圖中哪個位置嗎? 順心 < face="Verdana, Arial, Helvetica"> 這是我現在想到的流程...可是不知道怎麼實作 麻煩給我點建議..謝謝~ 1.我的目標是要先定出這些原圖片中顏色的區域範圍 (這樣我才可以知道多少到多少是紅色之類的..) 2.然後我要在畫面中加入另外一種顏色 3.再來依照之前所定出的顏色範圍,就可以馬上知道新介入的顏色位於哪個顏色(之前定好的)的區域內 4.正確判定出區域以後 進而驅動我要驅動的事件
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-10 23:45:30 IP:140.135.xxx.xxx 未訂閱
visuala您好: 我簡略說一下我的想法與程式(參考下面的圖與code)
Graphics::TBitmap* BMP = new Graphics::TBitmap();
 BMP->LoadFromFile("1.bmp");
 Image1->Picture->Assign(BMP);
 Byte* ptr =NULL;
 for (int y=0;yHeight ;y++)
 {
  ptr=(Byte*)BMP->ScanLine[y];
  for (int x=0;xWidth ;x++)
  {
   if (ptr[x*3+2]==255&&ptr[x*3+1]==0&&ptr[x*3]==0)
    ptr[x*3]=ptr[x*3+1]=ptr[x*3+2]=255;
   else
    ptr[x*3]=ptr[x*3+1]=ptr[x*3+2]=0;
  }
 }
 Image2->Picture->Assign(BMP);
 delete BMP;
藉此找出紅色的部分,要求出範圍的話,您可以將點記錄下來 或是用投影法找出來,如下面聯結所示 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34973 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
visuala
一般會員


發表:33
回覆:39
積分:14
註冊:2003-04-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-11 05:43:00 IP:218.170.xxx.xxx 未訂閱
多謝taishyang大大幫忙..再請問一下~~ 1.ptr[x*3 2]==255&&ptr[x*3 1]==0&&ptr[x*3]==0 可以測出紅色 ptr[x*3 2]==0&&ptr[x*3 1]==0&&ptr[x*3]==0來抓取黑色 可是像綠色和黃色我都測不太出來.. 還有如果我圖中所用的的顏色是混合的色系 要怎麼樣找出來呢 我都測不到畫面全黑 要怎麼知道準確的RGB值呢...還是有辦法定出一個範圍的誤差值 只要我的顏色差異大一點都不會有誤..不知道可不可行 麻煩指點一下 謝謝... *新手請多多包含~^^a* 發表人 - visuala 於 2003/11/11 06:46:08
taishyang
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-11 13:56:10 IP:140.135.xxx.xxx 未訂閱
visuala您好: 您可以用下面的code得知黃色或混褐色的RGB各是多少
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
 int R=GetRValue(Image1->Canvas->Pixels[X][Y]);
 int G=GetGValue(Image1->Canvas->Pixels[X][Y]);
 int B=GetBValue(Image1->Canvas->Pixels[X][Y]);
 Form1->Caption=IntToStr(R) " " IntToStr(G) " " IntToStr(B);
}
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
visuala
一般會員


發表:33
回覆:39
積分:14
註冊:2003-04-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-12 19:56:42 IP:218.170.xxx.xxx 未訂閱
taishyang大大您好~    同樣的圖我用數位像機拍攝以後之前的顏色區塊所有的顏色RGB值都會偏差了 請問要用什麼方法來修正,才能跟之前一樣抓到每個區塊的位置呢...謝謝~    對不起 新手多多包含O_Oa
taishyang
站務副站長


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-12 20:02:09 IP:140.135.xxx.xxx 未訂閱
visuala您好:
引言: 同樣的圖我用數位像機拍攝以後之前的顏色區塊所有的顏色RGB值都會偏差了 請問要用什麼方法來修正,才能跟之前一樣抓到每個區塊的位置呢...謝謝~
判斷式中以[RGB範圍]當條件,但很難完美的呈現您要的效果 因為一但遇到真實的情況,畫面的 > 發表人 -
visuala
一般會員


發表:33
回覆:39
積分:14
註冊:2003-04-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-12 20:47:46 IP:218.170.xxx.xxx 未訂閱
引言: 判斷式中以[RGB範圍]當條件,但很難完美的呈現您要的效果 因為一但遇到真實的情況,畫面的 >< face="Verdana, Arial, Helvetica"> 那如何才能正確地在照片中找到我要的顏色區域呢..那這樣是不是一定要避開RGB的測定呢 還是該往什麼方向去解決 謝謝~ 發表人 - visuala 於 2003/11/12 20:52:57
taishyang
站務副站長


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-11-12 21:01:19 IP:140.135.xxx.xxx 未訂閱
visuala您好:
引言: 那如何才能正確地在照片中找到我要的顏色區域呢..那這樣是不是一定要避開 RGB的測定呢 還是該往什麼方向去解決 謝謝~
您的Source與條件和其目的為何呢? 能否做一次完整的敘述 之前的回應已經達到您第一個問題的需求了... 假如您把條件發散開來,答案永遠無法收斂< > 順心< >
visuala
一般會員


發表:33
回覆:39
積分:14
註冊:2003-04-01

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-11-12 21:05:05 IP:218.170.xxx.xxx 未訂閱
引言: visuala您好:
引言: 那如何才能正確地在照片中找到我要的顏色區域呢..那這樣是不是一定要避開 RGB的測定呢 還是該往什麼方向去解決 謝謝~
您的Source與條件和其目的為何呢? 能否做一次完整的敘述 之前的回應已經達到您第一個問題的需求了... 假如您把條件發散開來,答案永遠無法收斂< > 順心< >
不好意思 我重新發問^^ 新手多多包含~
系統時間:2024-04-30 21:50:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!