日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

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

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

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

?

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

?

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

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

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

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

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

?

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

?

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

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

?

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

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

?

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

?

結合下圖介紹一下玩法:

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

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

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

4:圖中6處可以關掉光劍顯示

5:圖中7處是為方便調試時做的,可以顯示程序尋找棍子的線

不一定非得是棍子,我用的方法是擬合最大目標區域的直線

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

?

?

?

下面是幾個截圖:

?

?

垃圾鏟

?

?

?

用手玩

?

光劍的幾種效果:

?

歡迎朋友們給點意見!

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

update:

?

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

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

?

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

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

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

?

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

?

單幀效果比較:

1、細化+hough直線檢測

2、canny邊緣+hough直線

?

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


總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。