日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

可以让你玩儿光剑的程序,vc实现方法和代码

發(fā)布時間:2025/7/25 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 可以让你玩儿光剑的程序,vc实现方法和代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://blog.csdn.net/onezeros/article/details/6124073

前幾天寫了一個可以玩兒光劍的程序,個人覺得很酷

?

這個程序你完全可以在自己電腦上玩玩,很有星球大戰(zhàn)中Jedi的感覺

?

在程序中,本沒必要使用opencv,但嘗試把opencv和mfc dialog結(jié)合一下,于是最終實現(xiàn)方式如下:

opencv采集圖像,mfc雙緩沖顯示,gdi+顯示光劍圖片

opencv和mfc 的結(jié)合費了不小勁兒才想到方法。

而且發(fā)現(xiàn),在xp中(至少在我的電腦上),顯存模式是BGRA順序,不知道各位高手是否認(rèn)同。剛開始我認(rèn)為是RGB但顯示結(jié)果很奇怪。

最終把IplImage數(shù)據(jù)(BGR)重新按BGRA(A=0)顯示時得到正確顯示

?

至于圖像處理,很簡單,簡單的閾值化后找打目標(biāo),然后顯示圖片即可

?

為了使光劍更漂亮,學(xué)了點Photoshop,效果差強人意,如果你能ps出更好的圖片,可以把程序中的圖片替換的,文件名不變就可以

在別人的視頻中找了點光劍揮動的聲音

?

視頻演示:http://v.youku.com/v_show/id_XMjM1NDM0OTEy.html,

錄像設(shè)備太差,聲音效果不好,于是關(guān)了聲音。你在運行程序時會聽到聲音,很有感覺的

?

代碼下載:http://download.csdn.net/source/2969385

?

結(jié)合下圖介紹一下玩法:

1:找一個顏色鮮艷點兒的棍子(在演示中我用的兩個道具:一根棍子繞上了一個紅色的塑料袋,垃圾鏟的柄),要求并不高,只要有個主要色調(diào)就成,比如藍(lán)色,紅色。圖中1處即為繞了一個紅色塑料袋的棍子。

2:調(diào)節(jié)閾值。如果你不熟悉rgb,這一步似乎不太容易。點擊你用的棍子(圖中1處),在圖中2處有rgb顯示,多點幾下,看看大致范圍。然后調(diào)節(jié)圖中4處rgb閾值。如果選中對應(yīng)的多選框,表示你的棍子的這個分量小于閾值,否則表示大于。圖示中,我用的是紅色主調(diào),于是R不選中,G、B選中。調(diào)整要達(dá)到的效果是,使圖中3處清晰顯示你棍子的位置,不是棍子的區(qū)域盡量減少

3:在圖中5處,選擇你喜歡的顏色。我做了六種簡單的效果,你可以自己做更漂亮的替換之

4:圖中6處可以關(guān)掉光劍顯示

5:圖中7處是為方便調(diào)試時做的,可以顯示程序?qū)ふ夜髯拥木€

不一定非得是棍子,我用的方法是擬合最大目標(biāo)區(qū)域的直線

我的攝像頭是640*480的,如果你的是320*240或別的,顯示窗口可能不一樣,但都可以玩

?

?

?

下面是幾個截圖:

?

?

垃圾鏟

?

?

?

用手玩

?

光劍的幾種效果:

?

歡迎朋友們給點意見!

?==============================================================================

update:

?

非常感謝wo_men123456在評論中的意見:

wo_men123456:霍夫直線檢測后,在用dx畫

?

今天我又用直線檢測做了一下,剛做的時候用canny邊緣檢測,效果出來時才意識到棍子有兩條邊,而本程序需要的不僅是直線,而且應(yīng)該是中線。于是后又采用細(xì)化處理+hough檢測,效果不錯。

但想來直線檢測和我原來采用的直線擬合就在本程序中的應(yīng)用而言還是有區(qū)別的:

?因為光照的不斷變化,閾值化后的圖像在相鄰幀之間也會不同,不同之處主要在目標(biāo)邊緣部分.
于是細(xì)化得出的線主要在兩端出變化較大(圖像端點處的結(jié)構(gòu)對細(xì)化結(jié)果影響是比較大的),這樣,這條線就不能很好地表示棍子。而hough直線檢測,因為只是檢測這一條線,給出的直線斜率變化較快,在光劍程序中就顯得不太適合。
而直線擬合的方法因為使用了棍子的所有點,在試驗中直線表現(xiàn)更為穩(wěn)定,即斜率變化平滑。
我原來方法的不足之處:要求目標(biāo)區(qū)域是連通的。
目標(biāo)出現(xiàn)小距離中斷時,檢測到的直線段會突然變短,而hough直線檢測可以較好地避免這個問題。解決方法是在檢測連通域時擴大像素連接的距離。不過隨之而來的是效率在一定程度上的下降。

?

?hough直線檢測法代碼下載:http://download.csdn.net/source/2977153

?

單幀效果比較:

1、細(xì)化+hough直線檢測

2、canny邊緣+hough直線

?

3、我原本的方法:直線擬合


總結(jié)

以上是生活随笔為你收集整理的可以让你玩儿光剑的程序,vc实现方法和代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。