国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#圖像識別 微信跳一跳機器人

2020-01-24 00:21:57
字體:
供稿:網(wǎng)友

更新

  GitHub中所有類庫的源碼已經(jīng)轉(zhuǎn)換為C#版本。

準備

  IDE:VisualStudio

  Language:C#/VB.NET

  GitHub:AutoJump.NET

  本文將向你介紹一種通過圖像識別實現(xiàn)“跳一跳”機器人的方法。 

第一節(jié) 圖像識別

  文中提到的所有方法和步驟只涉及簡單的向量計算。

  需要用到哪些計算?

  比較像素點的顏色

  求向量集合的中心

  計算顏色的相似度

  一個RGB顏色可以看作一個三維向量

  比較兩個顏色的相似度可以計算它們的歐幾里得距離

  也可以直接比較它們的夾角:夾角越小,兩個顏色越相似,反之亦然

  求平面向量集合的中心位置

  首先,將集合中所有的向量相加得到向量S

  再將向量S除以集合元素的個數(shù),結(jié)果即為它們的中心

圖1-1 識別效果預覽

第二節(jié) 識別落點

  找出盒子落點的前提是發(fā)掘每個盒子都具有的共同特征。

  盒子特征

  目標落點有兩種類型,菱形或圓形的盒子

  只有部分盒子的頂面顏色是大面積的純色

  盒子下方的地面背景是純色,但隨著游戲進行顏色會發(fā)生變化

  頂點特征

  頂點的上側(cè)為背景色

  頂點的左側(cè)(可能不適用于圓形)、右側(cè)(可能不適用于圓形)均為背景色

  識別方法

  從上向下逐行掃描像素找出盒子的頂點A

  繼續(xù)向下找出與A顏色相似的所有像素點集合C

  求出C像素集合的中心點,即為落點

圖2-1 盒子落點識別

第三節(jié) 識別角色

  角色的顏色相對特殊,很容易從游戲圖像中區(qū)分出來。

  人物特征

  角色呈國際象棋棋子狀

  角色整體顏色較為一致,部分區(qū)域有高光

  頂點特征

  角色的頂點顏色較深,易于區(qū)分

  識別方法

  從上向下逐行掃描像素找出角色的頂點A

  繼續(xù)向下找出與A顏色相似的所有像素點集合C

  求出C像素集合的中心點,并向下偏移固定數(shù)值

  中心點偏移后的像素D的位置即為角色的底部

圖3-1 角色底部識別

第四節(jié) 識別干擾

  通常,簡單的方法只適應(yīng)于絕大部分情況,特定情形時仍會出錯。

  哪些情況會導致識別錯誤

  盒子頂部的顏色不一致時

  角色頂部的位置高于目標盒子時

  角色站立的盒子和目標盒子的頂部顏色一致時

  其他干擾因素的解決方案

  加分提示的動畫:延時解決

  擊中中心的動畫:延時解決

  音樂盒的樂符動畫:不要在音樂盒上停留

主站蜘蛛池模板: 古浪县| 名山县| 江都市| 莱西市| 海晏县| 黄大仙区| 区。| 乌拉特后旗| 福贡县| 星子县| 新化县| 昌都县| 隆林| 通渭县| 双桥区| 于田县| 吉林省| 昌乐县| 东乡县| 宁夏| 新邵县| 达拉特旗| 江源县| 南昌县| 岳阳县| 贵溪市| 灌云县| 双牌县| 衡山县| 荔浦县| 定西市| 宣化县| 个旧市| 武清区| 剑川县| 景宁| 沁源县| 桐乡市| 达拉特旗| 宜阳县| 宜阳县|