顯示具有 week8 標籤的文章。 顯示所有文章
顯示具有 week8 標籤的文章。 顯示所有文章

2008年4月17日 星期四

BCB Programming 遭遇問題與解決過程之描述

關於Programming的部份,回去有嘗試著寫過,但儲存影像陣列部分還是寫不出來,只能看講義的程式碼
關於capSetCallbackOnFrame和FrameCallBack的函數
即Byte *ptr;
LPVIDEOHDR CaptureData;
LRESULT CALLBACK FrameCallBack( HWND hwndCapture, Longint lpvhdr )
{
// To get capture data
CaptureData=LPVIDEOHDR(lpvhdr);
ptr=CaptureData->lpData;
for(k=0,i=BitmapInfoHead.biHeight-1;i>=0;i--)
{
}......
不過很多名稱都不太一樣,光這個就搞好久...

嗯..要考試了

這是一個在撰寫用FrameCallBack儲存攝影機影像時碰到的問題
如圖:

簡單的說...這項程式碼無法在Bitbtn下使用
經由神秘高人指點必須放至在外
可是...

放置於外的時候卻發生了執行上的問題
由於
LRESULT CALLBACK FrameCallBack( HWND hwndCapture, Longint lpvhdr )
並無斷行導致程式判定為錯誤的格式
但是若是加上斷行..

如圖...加上斷行後..Bitbtn內的程式就被視為無宣告了

BCB

這次一樣如往常的先copy講義上的程式,在debug。

我試的是1.2.2的第三種儲存影像陣列的方法。

除了一些容易看出是需要宣告變數的bug外,另外沒能自己解決的問題:

1、


這裡是因為少加了Image元件,所以插入後並將名稱改為與程式中用到的一樣,就ok了。

2、

BitmapInfoHead要宣告成 static BITMAPINFOHEADER BitmapInfoHead;

在1.2.3的程式裡找到的~

3、

這裡的錯誤敘述跟真正的錯誤完全不一樣=.=

經由老師的指導後,才知道...

LRESULT CALLBACK FrameCallBack( HWND hwndCapture, Longint lpvhdr ) 是一個副函式,必需要放在主函式外。

雖然compile過後,可以跑了,但是...不知道是否是真的ok了,因為不知道要如何測試。

可能要寫到後面的程式才能得知了~

再寫一次!?(加長版?)

BCB Programming 遭遇問題與解決過程之描述:

前些日子,我的學習進度,
是到1.2.2的儲存影像陣列.

當時因為某樣東西沒宣告,
所以,
一直跑出以下的錯誤訊息:Undefined symbol 'BitmapInfoHead'

1.2.2並沒有多加說明'BitmapInfoHead'是屬於哪種型態??
一時之間...我也不可能突然會寫.

無奈之餘...
我也只好將實驗教學手冊,
再向後翻翻看,
找找看有沒有什麼可用的程式.

雖然不確定是不是用在這種情況.
但是在1.2.3有行程式碼是這麼寫的:
static BITMAPINFOHEADER BitmapInfoHead;

原本只想要隨便試試.
說也奇怪...,
就這麼巧,錯誤訊息就這麼消失了.
我想...該不會
'BitmapInfoHead'就是要宣告成' BITMAPINFOHEADER '吧!

雖然還有不少地方,我還看不太懂.不過我會慢慢去試,去體會的.

===(以下內容有要寫嗎??如沒有,請自行略過~)===

回答方泓智同學關於 Codebook 的疑問

關於codebook和codevector
我在網路上查到這則論文:
利用LBG 群聚法之向量量化影像壓縮演算法
裡面有提到一些~
截取一小部份出來看.
-----------(以下為部份截取內容)------------------
向量量化(Vector Quantization,簡稱VQ)為影像壓縮演算法中很常出現的特徵量表示方式,VQ 根據輸入影像製造碼簿,再將輸入影像各個區塊以碼簿內的碼字來近似,藉此達到壓縮位元率的目的,但也因此造成影像的失真.
向量量化
設f=【f1,f2,………,fN】T 表示一N 維向量,它是由N 個實數連續純量值fi 所組成。在VQ 中,f 將被映射到另一個N 維向量r=【r1,r2,………,rN】T。 f 的VQ 是將一個N 維向量空間分割成L 個決策區域Ci,1 ≤ i ≤L,每一個決策區域包圍一個重建向量ri。在編碼的文獻中常將ri 稱為碼向量(codevector),並將碼向量所形成的集合稱為碼簿(codebook)。

設fp 代表f 量化的結果,則可寫成
fp=VQ(f)=ri,f∈Ci
其中VQ 代表向量量化的動作。[1]
在向量量化編碼時,不同的碼向量分別給予不同的指標,藉由指標而非向量本身的傳送,可以降低表達此影像時所需花費的位元數,這就是以向量量化做影像壓縮減少資料量的原因。

圖1 為向量量化的流程圖。其中編碼端及解碼端的碼簿均相同。每輸入一個向量,編碼端會到碼簿中去尋找和此向量有最短距離的碼向量,並將代表此一碼向量的指標傳送至解碼端。解碼端主要為查表的動作,將此一指標所對應的碼向量取出當作輸出向量,完成解碼動作。


資料來源:
-----------(以上為部份截取內容)------------------


不曉得是不是有點難,
我也不是很瞭它在說什麼..(謎:其實是你太笨orz)
不過不知道對同學有沒有幫助.(所以就先po文)

=====================================

解釋 色彩差距(color distance) 的觀念

老師課堂上都講過了,
所以我就不多說了~

BCB的問題...

來看圖說故事吧= =





一開始...照著講義上的打...出現很多錯誤是正常的....


譬如上圖...很多東西都沒宣告...有些是自己的物件名稱跟講義上的不同...


就自己加一加改一改吧....



跑出了一個BitmapInfoHead.biHeight沒定義...把它改成Hight看看....
run了一下...沒錯....ok...找下一個....
這次是ptr沒定義...
跑去問學長給了我一個很直接的答案.......那就定義阿....
所以跑去最上面加上Byte *ptr....
然後source也跑出沒定義....我也跑去最上面定義了一下...
一開始我有給他大小...後來跑出下面這張圖...
好像是說你webcam的影像超出你儲存的範圍了...
那我source不設範圍看看....
結果還是要我設值就是了....
最後最後的結論是......我問的同學不會....問了學長他說沒學過也不會....
上網找不到跟講義相似的東西...(我的搜尋引擎太懶了...)
所以...就是還不會用儲存影像陣列....

2008年4月15日 星期二

暫無

關於codebook和codevector的問題:
Codebook即編碼簿,而對應到編碼簿中的向量稱為Codevector(碼向量),也可以說是碼向量的集合。每個碼向量皆會被對應到一個索引值,稱為Codeword(編碼字)。在參考資料以後得知:Codebook是向量量化時必須用到的,而向量量化是為了達到影像壓縮或資料壓縮的方法。
Codeword->Codevector->Codebook->Vector Quantization(VQ)->Image Compression 大概是這樣吧...

2008年4月10日 星期四

BCB

這次寫的BCB是讓程式播放出攝影機拍的畫面,不知道跟上次看到洛克人的遊戲是否有相關聯.可以用BCB寫出類似只要攝影的對想做什麼動作,遊戲裡的角色就會跟著不同動作做出不衣樣的動作.而這次寫的BCB程式碼比較不懂的地方就是為啥要用for迴圈做十次,後來聽了阿德的解釋,原來一台電腦裡面只能有十個視訊,而另一個問題就是影像的清晰度,好像不管怎麼改BCB的程式碼,都無法像攝影機直接波出的畫面那樣清晰.

week8 <電腦視覺監控>心得

影片<影像視訊融合技術於監控系統之應用>
從影片一開始的Google Earth轉到nctu的場景
突然切換成3D模型場景,讓我感到很疑惑

如果要依照這樣的模式對每個地方進行監控,
就要針對監控的地方去建立3D模型

畫面上移動的人物應該是把攝影機拍到的人物投射到3D場景上
可是攝影機的背景應該還是2D的,這之間的差異轉換還滿神奇的

技術文章<淺談行人偵測>
這一篇裡面講了很多我看不懂的名詞@@
我比較注意到的是文章裡面說,
人臉偵測目前已經有演算法可以快速且準確的進行,
所以現在在做行人偵測的研究

比起單純的物件偵測,
行人偵測還多出了很多必須考慮的條件,如衣服、遮蔽等等
使得演算法困難許多
只是不知道行人偵測的實際有效功用有哪些??

電腦視覺監控產業研究

電腦視覺監控產業研究心得:

電腦監控技術的發展
促進了Safety、Securty、Carebusiness的成長
針對兩個「系統整合影片展示系」的影片
由室內延伸到戶外的概念


還可分為1.車牌辨識 2.智慧型PTZ攝影機 3.平順轉場 4.全向攝影 5.自動車


我還特別去查了PTZ攝影機相關設備和平順轉場的圖到底長怎樣

參考網頁:http://www.twisu.com.tw/3/authorware/author1/au105.htm

我也找了一下 什麼是科專計畫
http://r608-04.eic.nctu.edu.tw/cvrc/research_1_1.htm
主要是國科會推動的樣子
看完後才想到 這種技術的結合
目的涵蓋真的很廣
除了平常看到 以及影片介紹的「安全」這點外
也可應用在
˙互動式看護服務系統 - 人工看護服務,需要一對一24小時的照顧。
產業發展後可達到
偵測非語音資訊如眼睛呆滯、頭的動作反應、臉部表情與手臂的搖動等。
偵測語音資訊如呻吟聲、哀號聲等。
提供人機交談界面以現場資訊作緊急狀況的判斷。

這不僅可以節省人力的消耗
更可以有效率的管理病人的健康情況


˙自動車導航與機動性環境偵測系統 - 國內產業尚無自動車導航技術。
產業發展後可達到
可技轉導航及環境偵測技術給相關產業。

針對這部份 我覺得這個應用很好
不僅可以用在自動拆除危險物品
我覺得也可以發展在無人駕駛的導航車上
例如喝酒的人 就可以用導航車安全回家之類的

這類的產業還滿熱門的
這個網站也有很多實例
http://www.huperlab.com/chinese/product/hupervision/keyFeature_1.htm

QQQQQQQQQQ

看完電腦視覺監控的影片後,覺得他判斷人臉的方式很有趣,到底它是如何去分析是否人臉.去看了他們網站有關監視系統之影像處理技術,大致了解開發以「影像處理」方法為基礎的方法,其分別應用於監視攝影機的「畫面遮蔽」的議題,以及應用於監視畫面中「特定物體遺失的狀態偵測」.

[畫面遮蔽]他們使用影像處理的方法為Histogram與Edge這兩個特徵來作為畫面當中是否有特定物體針對攝影機畫面有所遮蔽的意圖。

[特定物體遺失的狀態偵測] 他們使用多種影像處理的方法,簡單的說Histogram、Template match、Rotation與Edge這幾個主要特徵來辨識畫面中特定物體是否遺失的狀況發生。

而且他們設定的監控系統還可透過網路連線傳給使用者,加上還能分析動作來判定是否危險人物,實在是非常讓人驚訝.

電腦視覺監控...

看完還覺得很有趣XD

不過看到大家都寫這麼多...好大壓力阿XDD
===========================================

自己看了「系統整合影片展示」的影片後,
想到一個問題
如果負責監控的控制人員
當天他的臉型因為一些不可抗拒的原因而變形(例如:可能不小心撞到什麼東西而導致臉上出現傷痕)此時必定和資料庫裡的人臉不一樣
這時候如果他必須要進入檢控房的話,
而電腦辨識必定會說他不是合法的臉,這時候有什麼方法來進去?
總不能等到說臉型便會原本的樣子吧...
再說每個人的臉在不同的時段都有不同的樣子,(人一生的樣子總會改變的八...)
總不能要用戶每次出錯的時候再去修改...
這一點都不人性阿(雖然說可能只需要交一張照片就可以了事了XDD)

我想到的是
臉部辨識是用在於監控當天進入該棟建築物的人的活動(至少不需要辨識XD)
再來就是當人進入該建築物時,
用該攝影機來擷取該名人員的臉
以利以後需要追蹤時的必要檔案...
(這好像老師有說過XD)
反正大概就是這個意思...
不過動作的監控就比較有趣了


不過總的來說...現在很多的都是單一人員的
沒辦法達到多人同時監控
多人時應該會出錯八XD
而且人一多起來,攝影機就沒辦法全部補抓到全部的人
可能這就是缺點吧XDD

//不過我對他們的自己做的攝影機有興趣阿XDD

BCB Programming 遭遇問題與解決過程之描述

前些日子,
我的學習進度,
是到1.2.2的儲存影像陣列.

當時因為某樣東西沒宣告,
所以, 一直跑出以下的錯誤訊息:
Undefined symbol 'BitmapInfoHead'

1.2.2並沒有多加說明'BitmapInfoHead'是屬於哪種型態??
一時之間...
我也不可能突然會寫.

無奈之餘...
我也只好將實驗教學手冊,
再向後翻翻看,
找找看有沒有什麼可用的程式.

雖然不確定是不是用在這種情況.
但是在1.2.3有行程式碼是這麼寫的:
static BITMAPINFOHEADER BitmapInfoHead;

原本只想要隨便試試.
說也奇怪...,
就這麼巧,
錯誤訊息就這麼消失了.
我想...
該不會'BitmapInfoHead'就是要宣告成' BITMAPINFOHEADER '吧!

雖然還有不少地方,
我還看不太懂.
不過我會慢慢去試,去體會的.