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

麻煩指點一下~BCB影像問題

答題得分者是:JerryKuo
visuala
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-10 21:14:44 IP:218.170.xxx.xxx 未訂閱
新手多多包含~ 我是先利用兩張圖做比對的測試 以下是我的程式碼 Image2是背景,Image3是背景+前景,比對之後把Image的前景框住 我的問題是當前景景物有很多個時(EX:3個人)~目前還是只會以最大的範圍框出 所以想改寫成可以單獨框出每個前景要怎麼改比較好呢 可以直接該還是重新改寫比較好勒...麻煩指導一下 不太懂><...    void __fastcall TForm1::Button6Click(TObject *Sender) {   if (Image2->Picture->Bitmap->Empty==true)     ShowMessage("請載入圖檔!!");      COLORREF c1,c2;   int x1,y1,x2,y2,key=0;   //key=0表第一個不同的點,key=1表除了第一點的其他   點,x1=Xmin,x2=Xmax,y1=Ymin,y2=Ymax   int a1,b1;       for(b1=0;b1<241;b1 ) for(a1=(a1%2?0:1);a1<321;a1 =2) { c1=::GetPixel(Image2->Canvas->Handle,a1,b1); c2=::GetPixel(Image3->Canvas->Handle,a1,b1); if(c1!=c2&&key==0) { y1=b1; y2=b1; x1=a1; x2=a1; key ; } if(c1!=c2&&key==1&&a1x2) {x2=a1;} else if(c1!=c2&&key==1&&b1>y2) {y2=b1;} //max } //for's Image3->Show(); Image3->Refresh(); Image3->Canvas->LineTo(x2,y1); Image3->Canvas->LineTo(x2,y2); Image3->Canvas->LineTo(x1,y2); Image3->Canvas->LineTo(x1,y1);//框住不同區域 }
JerryKuo
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-15 21:42:07 IP:61.230.xxx.xxx 未訂閱
你好: 看到這個問題,其實只要用點影像分割的技巧就能找到了,以下請用想像的^^ 沒力氣畫圖。 1.輸入偵測的圖片減其背景圖得到數個分開的前景物件,有相連就當做一個物件 ,減去的背景地方用黑色取代,前景物件以白色取代 2.再用邊緣濾鏡(如:高通濾波),得到每個物件外形 3.以八鄰邊方法搜尋每個物件外形像素,求得物件的位置(最上,右,左,下界)。 並將物件清楚,以利求得下一個物件位置。 4.搜尋完第一個,就可以再以第3步驟搜尋第二個物件,第三個物件 直到都沒有物件外形,結束。 參考看看,程式應該不難寫....
visuala
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-17 23:55:28 IP:218.170.xxx.xxx 未訂閱
不好意思...關於第3點的八鄰邊的方法 可不可以再幫我說明一下呢 或是有什麼可以參考的例子勒...多謝多謝~
JerryKuo
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-18 10:31:09 IP:61.230.xxx.xxx 未訂閱
你好:    要說明八鄰邊的方法嗎?這可能要開一堂課才行喔開玩笑啦, 八鄰邊的方法實在很難三言兩語就能說明,大概的想法是:
visuala
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-18 12:34:08 IP:218.170.xxx.xxx 未訂閱
因為沒學過影像處理的課程... 本來想用直觀的演算法來解...可是想不到很可行的方式 ~請問一下...用getpixel 比較 RGB的方式 有沒有辦法把<<數個已經分開的前景物件(和前景相減後)>> "判定出是否相連,並且個別找出其座標:個別框出其範圍出來嘛?" 因為我用getpixel同一線上的多個物體..不知道座標該如何取捨 發表人 - visuala 於 2003/08/18 12:36:10 發表人 - visuala 於 2003/08/18 12:38:48
JerryKuo
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-18 13:23:02 IP:61.230.xxx.xxx 未訂閱
引言: 因為沒學過影像處理的課程... 本來想用直觀的演算法來解...可是想不到很可行的方式 ~請問一下...用getpixel 比較 RGB的方式 有沒有辦法把<<數個已經分開的前景物件(和前景相減後)>> "判定出是否相連,並且個別找出其座標:個別框出其範圍出來嘛?" 因為我用getpixel同一線上的多個物體..不知道座標該如何取捨
visuala你好: 很高興你找到問題的主題了,可否給文章重新訂個明顯的標題,以便 其他朋友查詢。 既然你已經想出方向(藍色部分),就試著寫看看,或做個實驗,用手畫 看看,發揮程式設計的精神。 在寫程式上,如果有遇到問題,再請教大家
系統時間:2024-04-29 16:24:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!