如何運用template與影像做比對 |
尚未結案
|
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
newken您好:
您可以利用[全國碩博士論文資訊網]用[人臉追蹤]當Keyword搜尋
有電子檔可以下載
可參考下面連結
http://datas.ncl.edu.tw/theabs/1/ 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 -
|
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
newken您好:
引言:這個匹配的動作是不是將sobel filter以後的二值化影像判斷是否有值,如果有值的話即將x,y座標帶入橢圓模板,即統計帶入的值所得到的橢心座標,如果得到相同橢心座標越多即代表在同一橢圓上(1) 一定都有值,且落在[0,255]區間中 (2) 是統計您橢圓模板上的像素值,並紀錄橢圓座標 (3) 是統計值越大,表這個橢圓與人臉的[邊緣]最match 建議您再看一遍論文,您確定您了解它的精神,您就會用程式來實現了 而且這一個方式做,會有計算速度過慢的問題(假如您有real time的需求) 您看論文中有提到,之後會做下一個出現位置的估測才會加快計算的速度 除非您的Source畫面大小很小 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 - |
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
引言: 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 發送簡訊給我 |
各位好 我有去看了其中一篇成大碩士生的論文,我有個疑問:
他的橢圓模板是套在經過前處理的區塊上,哪一個區塊最像
橢圓?那一部分就是人臉。而newken是用sobel得到的edge
是不是要再經過一次影像處理,取出將臉部edge,或是物件
的edge,然後mask為一塊一塊的區塊,再統計這些區塊的形
狀是不是近似橢圓。光憑sobel的edge,很難想像如何去
近橢圓形的人臉,而得到人臉的中心位置。
因為我沒做過物件追蹤,所以對物件的取得有點陌生,看
到這個主題純粹想多學一點,如果有問錯,希望大家多指教。
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
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 發送簡訊給我 |
JerryKuo您好:
引言: 我有去看了其中一篇成大碩士生的論文,我有個疑問: 他的橢圓模板是套在經過前處理的區塊上,哪一個區塊最像 橢圓?那一部分就是人臉。而newken是用sobel得到的edge 是不是要再經過一次影像處理,取出將臉部edge,或是物件 的edge,然後mask為一塊一塊的區塊,再統計這些區塊的形 狀是不是近似橢圓。光憑sobel的edge,很難想像如何去 近橢圓形的人臉,而得到人臉的中心位置。您指的前處理指的是什麼呢??一般都是在經由sobel之後再用橢圓遮罩作的... 因為當橢圓遮罩match住之後,自然就知道中心點了,但不一定會match到人臉的中心點,除非刻意,不然就是畫面當中人臉所佔的比例很大... 當然display時,會將橢圓畫在原來的未經處理的畫面中... 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> |
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
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 發送簡訊給我 |
|
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
newken您好:
引言: 可是我宣告了byte *posi 他出現了以下訊息 [C Error] ImageProcess.cpp(297): E2034 Cannot convert 'TPoint' to 'unsigned char *'為什麼您要這樣宣告?? 那段程式只是我寫的一小部分(關鍵處)... 您不知道那段程式做什麼用,接下來只是越來越模糊我的本意... 您先說說您知道的理論部分,我看看還缺些什麼吧... 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> |
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
newken
一般會員 發表:26 回覆:52 積分:15 註冊:2003-03-26 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |