線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:14104
推到 Plurk!
推到 Facebook!
[<<] [1] [2] [3] [4] [>>]

如何運用template與影像做比對

尚未結案
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-22 13:45:59 IP:163.28.xxx.xxx 未訂閱
各位先進您好: 小弟有一個問題想請教大家‧ 如果將人臉影像做sobel filter 後得到影像的edge,然後要用一個橢圓的template去跟人臉的edge做匹對,那我該如何下手呢?
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-22 13:54:40 IP:140.135.xxx.xxx 未訂閱
newken您好:   您可以利用[全國碩博士論文資訊網]用[人臉追蹤]當Keyword搜尋   有電子檔可以下載   可參考下面連結   http://datas.ncl.edu.tw/theabs/1/ 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-22 14:05:50 IP:163.28.xxx.xxx 未訂閱
taishyang您好: (1)你提供的那個網站我之前就查詢過了,而且理論方面是沒問題,但現在要運用程式來實現。 (2)我的問題是,我該如何在程式中用橢圓模板來fit人臉。 請你給我一點啟發吧.............
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-22 15:25:46 IP:140.135.xxx.xxx 未訂閱
newken您好:     
引言:我的問題是,我該如何在程式中用橢圓模板來fit人臉。
您的問題其實已經透露出答案了.... (1) 製作橢圓模板 (2) 以此模板掃描含人臉的影像 (3) 統計模板上的總像素值,最大的就是最像人臉(橢圓的地方) 如圖所示: ~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 - taishyang 於 2003/04/22 15:26:57
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-22 15:46:32 IP:163.28.xxx.xxx 未訂閱
taishyang你好: (1)如何用模板去掃描一張影像,在bcb上 (2)如何統計 我不知在程式上如何去實踐這兩見事,請你繼續給我指導吧< >< >
taishyang
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-22 16:02:05 IP:140.135.xxx.xxx 未訂閱
newken您好:    
引言: (1)如何用模板去掃描一張影像,在bcb上 (2)如何統計
(1) 請問您橢圓模板做出來了嗎?? 以橢圓的中心點為準,掃描畫面.. (2) 累計像素值 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-22 16:16:34 IP:163.28.xxx.xxx 未訂閱
taishyang你好: for(int i=1; i<=360; i ) { x1=StrToInt(Edit5->Text) a*cos(PI*i/180); y1=StrToInt(Edit6->Text) b*sin(PI*i/180); posi=TPoint(x1,y1); pixel= GetPixel(Bitmap->Canvas->Handle, x1,y1); value[i-1]=(Byte)pixel; sum =value[i-1]; Image3->Canvas->Pixels[x1][y1]=clRed; } (1)這一段程式是你之前給我參考的,你的意思是指先把template做好然後再與待測影像做匹配 (2)可是我有疑問的是,template與影像做匹配的這個動作要怎樣用程式來實現 謝謝你的指導............
taishyang
站務副站長


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-22 16:42:43 IP:140.135.xxx.xxx 未訂閱
newken您好:  
引言: (1)這一段程式是你之前給我參考的,你的意思是指先把template做好然後再與待測影像做匹配 (2)可是我有疑問的是,template與影像做匹配的這個動作要怎樣用程式來實現
(1) 沒錯 (2) 以橢圓的中心點為基準點,伴隨而來的是計算出論文中提到的sum of gradient magnitude 而Maximize the normalized sum of gradient magnitude就是取最大的就是人臉的部分... 程式的部分應該是要自己寫,因為這是您的畢業論文當中的一部分... 程式發問的方式應該是,您寫到一部分,結果不正確,請大家幫您看看... 除非程式很短... 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-22 16:55:25 IP:163.28.xxx.xxx 未訂閱
taishyang你好: (1)這個匹配的動作是不是將sobel filter以後的二值化影像判斷是否有值,如果有值的話即將x,y座標帶入橢圓模板,即統計帶入的值所得到的橢心座標,如果得到相同橢心座標越多即代表在同一橢圓上 不知我這樣的想法對不對............ thanks>>>>>>>>>>>>>>>>>>
taishyang
站務副站長


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-22 17:09:19 IP:140.135.xxx.xxx 未訂閱
newken您好:  
引言:這個匹配的動作是不是將sobel filter以後的二值化影像判斷是否有值,如果有值的話即將x,y座標帶入橢圓模板,即統計帶入的值所得到的橢心座標,如果得到相同橢心座標越多即代表在同一橢圓上
(1) 一定都有值,且落在[0,255]區間中 (2) 是統計您橢圓模板上的像素值,並紀錄橢圓座標 (3) 是統計值越大,表這個橢圓與人臉的[邊緣]最match 建議您再看一遍論文,您確定您了解它的精神,您就會用程式來實現了 而且這一個方式做,會有計算速度過慢的問題(假如您有real time的需求) 您看論文中有提到,之後會做下一個出現位置的估測才會加快計算的速度 除非您的Source畫面大小很小 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-22 17:19:14 IP:163.28.xxx.xxx 未訂閱
taishyang你好: (1)''統計您橢圓模板上的像素值,並紀錄橢圓座標''這一段話我有點不懂,為什麼是統計模板上的值 (2)如果照你說的,那不就是在待測影像上shift橢圓模板然後統計相對的位置 如果相對的越多,即是為match的 但是在程式中怎麼shift橢圓模板阿,且紀錄座標值,你能不能教教我 thanks...................
taishyang
站務副站長


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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-04-22 17:43:39 IP:140.135.xxx.xxx 未訂閱
newken您好:   
引言: (1)''統計您橢圓模板上的像素值,並紀錄橢圓座標''這一段話我有點不懂,為什麼是統計模板上的值 (2)如果照你說的,那不就是在待測影像上shift橢圓模板然後統計相對的位置
(1) 是紀錄橢圓的中心點,且統計模板的像素值,不然那要統計什麼呢?? 不為什麼, > ( > <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-04-23 00:07:06 IP:61.230.xxx.xxx 未訂閱
taishyang你好: (1) 是紀錄橢圓的中心點,不統計模板的像素質,那要統計什麼呢?? 不為什麼,paper上就是這樣寫 (2)只講對一半,Shift模板,且統計模板上的像素值... 順心  -------------------------------------------------------- (1)你說紀錄橢圓的中心點,不統計模板的像素質,怎麼又說統計模板上的像素值,不懂 (
taishyang
站務副站長


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

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-04-23 00:34:50 IP:140.135.xxx.xxx 未訂閱
newken您好:    
引言:(1)你說紀錄橢圓的中心點,不統計模板的像素質,怎麼又說統計模板上的像素值,不懂 (2)請問怎麼用模板對整張影像作shift,你能不能給我個例子,譬如說幾行程式碼作說明,因為我就是卡在程式上不曉的怎麼implement不然就不會問你了,我並不是要你把所有的程式show給我知,我只是不曉的shift模板這段程式怎麼下手.............
(1)假如不統計模板的像素質,那要統計什麼呢??(您誤會我的意思了) (2)
 
   for (x=0; x < source的寬; x   )
    {
     for (y=0; y < source的高; y   )
      {
        Search();// 之前給您的code
        Total=sum/360; //就是normalized sum of gradient magnitude
      // 並設一臨界值,超過則紀錄每一次的橢圓中心點與Total,統計完後找
      //Maximize the normalized sum of gradient magnitude的那一個位置,
      //就是與臉最match的地方 
      }
    }
   
順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-04-23 17:55:53 IP:163.28.xxx.xxx 未訂閱
taishyang你好: (1)請問search這個指令如何用,我有查詢過C builder的help但我看不太懂 請你教教我吧 (2)pixel= GetPixel(Bitmap->Canvas->Handle, x1,y1); //取得像素值 value[i-1]=(Byte)pixel; // 將像素值存入矩陣中 sum =value[i-1]; // 累計,最後用來算Maximize the normalize sum of gradient magnitude 上面著三行,是否就是依輸入的source,然後變動橢心座標 來統計the normalize sum of gradient magnitude
taishyang
站務副站長


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

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-04-23 20:57:34 IP:140.135.xxx.xxx 未訂閱
newken您好:   
引言: (1)請問search這個指令如何用,我有查詢過C builder的help但我看不太懂 請你教教我吧 (2)pixel= GetPixel(Bitmap->Canvas->Handle, x1,y1); //取得像素值 value[i-1]=(Byte)pixel; // 將像素值存入矩陣中 sum =value[i-1]; // 累計,最後用來算Maximize the normalize sum of gradient magnitude 上面著三行,是否就是依輸入的source,然後變動橢心座標 來統計the normalize sum of gradient magnitude
(1) 此Search非比BCB Search指令,您沒看到後面的註解嗎??? (2) 您應該會知道為什麼要這麼做(因為您說您理論已經懂了),而且我在後面有註解... 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
mkchuang
一般會員


發表:1
回覆:10
積分:7
註冊:2002-12-18

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-04-24 04:28:37 IP:163.28.xxx.xxx 未訂閱
引言: newken您好:
引言:這個匹配的動作是不是將sobel filter以後的二值化影像判斷是否有值,如果有值的話即將x,y座標帶入橢圓模板,即統計帶入的值所得到的橢心座標,如果得到相同橢心座標越多即代表在同一橢圓上
(1) 一定都有值,且落在[0,255]區間中 (2) 是統計您橢圓模板上的像素值,並紀錄橢圓座標 (3) 是統計值越大,表這個橢圓與人臉的[邊緣]最match 建議您再看一遍論文,您確定您了解它的精神,您就會用程式來實現了 而且這一個方式做,會有計算速度過慢的問題(假如您有real time的需求) 您看論文中有提到,之後會做下一個出現位置的估測才會加快計算的速度 除非您的Source畫面大小很小 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 - >< face="Verdana, Arial, Helvetica"> taishyang你好, 關於你說的"(1)一定都有值,且落在[0,255]區間中" 有點問題想跟你請教一下 一般作sobel運算的時候,在做完mask運算的時候,會得到一個gradient值 gradient值再跟threshold值下去做比較,gradient值大於threshold值才視為邊界處,此處的pixel值改為255(白色),其餘gradient值小於threshold值設為 0 (黑色),這樣一來才會像你所擺上來的圖片一樣,邊界處為白色,其餘都是黑色區域。 所以說值應該不是0就是255,應該不是落在[0,255]之間吧??
JerryKuo
版主


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

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-04-24 09:12:31 IP:61.220.xxx.xxx 未訂閱
各位好 我有去看了其中一篇成大碩士生的論文,我有個疑問: 他的橢圓模板是套在經過前處理的區塊上,哪一個區塊最像 橢圓?那一部分就是人臉。而newken是用sobel得到的edge 是不是要再經過一次影像處理,取出將臉部edge,或是物件 的edge,然後mask為一塊一塊的區塊,再統計這些區塊的形 狀是不是近似橢圓。光憑sobel的edge,很難想像如何去 近橢圓形的人臉,而得到人臉的中心位置。 因為我沒做過物件追蹤,所以對物件的取得有點陌生,看 到這個主題純粹想多學一點,如果有問錯,希望大家多指教。
taishyang
站務副站長


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

發送簡訊給我
#19 引用回覆 回覆 發表時間:2003-04-24 11:38:34 IP:61.231.xxx.xxx 未訂閱
mkchuang您好:    
引言: 關於你說的"(1)一定都有值,且落在[0,255]區間中" 有點問題想跟你請教一下 一般作sobel運算的時候,在做完mask運算的時候,會得到一個gradient值 gradient值再跟threshold值下去做比較,gradient值大於threshold值才視為邊界處,此處的pixel值改為255(白色),其餘gradient值小於threshold值設為 0 (黑色),這樣一來才會像你所擺上來的圖片一樣,邊界處為白色,其餘都是黑色區域。 所以說值應該不是0就是255,應該不是落在[0,255]之間吧??
您說的臨界值指的是二值化的臨界值,我指的臨界值指的是橢圓遮罩所統計的像素值有一底限,太小就不去紀錄統計值 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
taishyang
站務副站長


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

發送簡訊給我
#20 引用回覆 回覆 發表時間:2003-04-24 11:46:34 IP:61.231.xxx.xxx 未訂閱
JerryKuo您好:   
引言: 我有去看了其中一篇成大碩士生的論文,我有個疑問: 他的橢圓模板是套在經過前處理的區塊上,哪一個區塊最像 橢圓?那一部分就是人臉。而newken是用sobel得到的edge 是不是要再經過一次影像處理,取出將臉部edge,或是物件 的edge,然後mask為一塊一塊的區塊,再統計這些區塊的形 狀是不是近似橢圓。光憑sobel的edge,很難想像如何去 近橢圓形的人臉,而得到人臉的中心位置。
您指的前處理指的是什麼呢??一般都是在經由sobel之後再用橢圓遮罩作的... 因為當橢圓遮罩match住之後,自然就知道中心點了,但不一定會match到人臉的中心點,除非刻意,不然就是畫面當中人臉所佔的比例很大... 當然display時,會將橢圓畫在原來的未經處理的畫面中... 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#21 引用回覆 回覆 發表時間:2003-04-24 15:04:01 IP:163.28.xxx.xxx 未訂閱
taishyang你好: 請問在橢圓模板程式中, for(int i=1; i<=360; i ) { x1=StrToInt(Edit5->Text) a*cos(PI*i/180); y1=StrToInt(Edit6->Text) b*sin(PI*i/180); posi=TPoint(x1,y1); pixel= GetPixel(Bitmap->Canvas->Handle, x1,y1); value[i-1]=(Byte)pixel; sum =value[i-1]; Image3->Canvas->Pixels[x1][y1]=clRed; } posi,pixel,value,sum的資料型態是什麼呢? 請告訴我謝謝....................
taishyang
站務副站長


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

發送簡訊給我
#22 引用回覆 回覆 發表時間:2003-04-24 17:11:29 IP:140.135.xxx.xxx 未訂閱
newken您好:   您PO的程式碼當中已經告訴您了...    順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#23 引用回覆 回覆 發表時間:2003-04-24 17:22:02 IP:163.28.xxx.xxx 未訂閱
taishyang你好: 真的在那一段程式裡面嗎?我看不出來阿! posi pixel的資料型態我真的不知也不知怎麼宣告 thanks............
taishyang
站務副站長


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

發送簡訊給我
#24 引用回覆 回覆 發表時間:2003-04-24 17:30:39 IP:140.135.xxx.xxx 未訂閱
newken您好:     
value[i-1]=(Byte)pixel; 
紅色字體部分,您看出來了嗎??? 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#25 引用回覆 回覆 發表時間:2003-04-24 17:43:08 IP:163.28.xxx.xxx 未訂閱
taishyang你好: 可是我宣告了byte *posi 他出現了以下訊息 [C Error] ImageProcess.cpp(297): E2034 Cannot convert 'TPoint' to 'unsigned char *'
taishyang
站務副站長


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

發送簡訊給我
#26 引用回覆 回覆 發表時間:2003-04-24 17:53:04 IP:140.135.xxx.xxx 未訂閱
newken您好:    
引言: 可是我宣告了byte *posi 他出現了以下訊息 [C Error] ImageProcess.cpp(297): E2034 Cannot convert 'TPoint' to 'unsigned char *'
為什麼您要這樣宣告?? 那段程式只是我寫的一小部分(關鍵處)... 您不知道那段程式做什麼用,接下來只是越來越模糊我的本意... 您先說說您知道的理論部分,我看看還缺些什麼吧... 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#27 引用回覆 回覆 發表時間:2003-04-24 18:02:25 IP:163.28.xxx.xxx 未訂閱
taishyang你好: 我所知道的理論地方是: 將影像由SOBEL偵測之後成為一張二值影像,之後SHIFT橢圓模版在影像上, 然後根據中心點的不同,統計影像上與模板相對應的PIXEL數,之後在除TOTAL ,得到的最大值即是最MATCH的地方。 我這樣想,應該沒錯吧>>>>>>>>>>>>> THANKS>>>>>>>>>>>>>>>>>>>>>>
taishyang
站務副站長


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

發送簡訊給我
#28 引用回覆 回覆 發表時間:2003-04-24 18:09:10 IP:140.135.xxx.xxx 未訂閱
newken您好:    
引言: 然後根據中心點的不同,統計影像上與模板相對應的PIXEL數,之後在除TOTAL,得到的最大值即是最MATCH的地方。
紅色字體部分,就是我給您的程式碼... 但我想確認的是,您橢圓模板是否有做出來??? 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#29 引用回覆 回覆 發表時間:2003-04-24 18:23:52 IP:163.28.xxx.xxx 未訂閱
taishyang你好: 你當初給我的這段程式不就是橢圓模板的程式嗎?你還告訴我如果要用matlab做就要把他轉成matlab的語法,我一直以為這一段就是橢圓模板的程式所以才會一直問你者麼shift這個模板程式。 thanks.......................
taishyang
站務副站長


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

發送簡訊給我
#30 引用回覆 回覆 發表時間:2003-04-24 18:51:29 IP:140.135.xxx.xxx 未訂閱
newken您好:
引言: 你當初給我的這段程式不就是橢圓模板的程式嗎?你還告訴我如果要用matlab做就要把他轉成matlab的語法,我一直以為這一段就是橢圓模板的程式所以才會一直問你者麼shift這個模板程式。
沒錯,但我想知道的是,您是否真的知道這段程式是在做什麼?? 您把我給您的部分程式碼原封不動的po回來,讓我擔心您是否真的有吸收 您的橢圓模板有多大?? 是否是逐點掃描??? 您知道怎麼做sobel mask您自己就知道該怎麼做一個橢圓mask... shift橢圓mask,就跟shift sobel mask一樣... 只不過橢圓mask是做統計一些資料,而sobel的結果要assign回原來的影像 p.s. 您的程式寫到哪部分了?? 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
newken
一般會員


發表:26
回覆:52
積分:15
註冊:2003-03-26

發送簡訊給我
#31 引用回覆 回覆 發表時間:2003-04-24 19:38:37 IP:61.230.xxx.xxx 未訂閱
taishyang你好: (1)你所說的橢圓模板有多大是否是說用幾個點構成橢圓呢? (2)''橢圓mask是做統計一些資料''這一句話是否是統計對應的點呢? 經過多次與你討論,真是讓我越來越了解了 thanks.......................
[<<] [1] [2] [3] [4] [>>]
系統時間:2024-11-23 12:47:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!