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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像识别:微信跳一跳机器人

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像识别:微信跳一跳机器人 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

準備

  IDE:VisualStudio

  Language:VB.NET/C#

  GitHub:AutoJump.NET

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

第一節 圖像識別

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

  需要哪些計算?

  比較像素點的顏色

  求向量集合的中心

  計算顏色的相似度

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

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

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

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

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

  再將向量S除以集合元素的個數,結果即為它們的中心

圖1-1 識別效果預覽

第二節 識別落點

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

  盒子特征

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

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

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

  頂點特征

  頂點的上側為背景色

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

  識別方法

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

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

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

圖2-1 盒子落點識別

第三節 識別角色

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

  人物特征

  角色呈國際象棋棋子狀

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

  頂點特征

  角色的頂點顏色較深,易于區分

  識別方法

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

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

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

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

圖3-1 角色底部識別

第四節 識別干擾

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

  哪些情況會導致識別錯誤

  盒子頂部的顏色不一致時

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

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

  其他干擾因素的解決方案

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

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

  音樂盒的樂符動畫:不要在音樂盒上停留ヾ(?゚▽゚)ノ

圖4-1 魔方(正確)

圖4-2 商店(偏離中心)

圖4-3 音樂盒 (偏離中心)

第五節 實測數值

  程序的部分參數需要通過實際測試得出。

  識別區域

  僅屏幕中間的三分之一區域需要進行圖像識別

  觸壓時間

  觸壓屏幕的毫秒數正好是角色與落點距離數值的兩倍

  例如,距離為500個像素點,那么就需要持續按下1000毫秒

?

圖5-1 識別區域(陰影部分)

附錄

  運氣好時,機器人可以自動玩到1000分:)

  GitHub:AutoJump.NET?

  參考文章:.NET開發一個微信跳一跳輔助程序

  參考書籍:《數學之美》[美]?吳軍 著?人民郵電出版社


原文地址:https://www.cnblogs.com/experdot/p/8157666.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的图像识别:微信跳一跳机器人的全部內容,希望文章能夠幫你解決所遇到的問題。

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