欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python微信跳一跳系列之棋子定位顏色識別

 更新時間:2018年02月26日 13:57:09   作者:艾克思工作室  
這篇文章主要為大家詳細介紹了python微信跳一跳系列之棋子定位之顏色識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

python微信跳一跳,前言

這是python玩跳一跳系列博文中一篇,主要內(nèi)容是用顏色識別的方法來進行跳跳小人的定位。

顏色識別

通過觀察,我們可以發(fā)現(xiàn),盡管背景和棋子在不停的變化,但跳跳小人的形狀和顏色基本保持不變,對于形狀,我們在上一篇博文中已經(jīng)采用模板匹配的方法來進行識別定位,效果非常好。這一篇博文就來對顏色識別進行驗證。

基本思路

用HSV顏色空間對輸入的圖片進行處理,用某種指定的顏色進行蒙版mask處理進而得到二值化的黑白圖像,膨脹和腐蝕后去除噪點,對輪廓區(qū)域進行計算,畫出圓心和質(zhì)心位置,并實現(xiàn)動態(tài)的跟蹤。
其基本的步驟如下:
設(shè)定需要的顏色閾值
讀入圖像
轉(zhuǎn)化為HSV圖像
采用顏色的蒙版進行二值化處理得到黑白圖像
降噪和輪廓處理
繪出圓心

python3.6代碼

import cv2 
import numpy as np 
import time

lower_blue = np.array([115,75,75]) #設(shè)定藍色的閾值
upper_blue = np.array([130,255,125])

frame=cv2.imread('001.png')

hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) #轉(zhuǎn)到HSV空間
mask_blue = cv2.inRange(hsv, lower_blue, upper_blue)
cnts = cv2.findContours(mask_blue, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2] 
if len(cnts) > 0: 
 c = max(cnts, key = cv2.contourArea) #找到面積最大的輪廓
 ((x, y), radius) = cv2.minEnclosingCircle(c) #確定面積最大的輪廓的外接圓

 center= (int(x),int(y))
 cv2.circle(frame, center, int(radius+10), (0, 0, 255), 3) #畫出圓心 
 cv2.circle(frame, center, 3, (0, 0, 255), -1)
 cv2.circle(hsv, center, int(radius+10), (255, 255, 255), 3) #畫出圓心 
 cv2.circle(hsv, center, 3, (0, 0, 255), -1) 
 cv2.circle(mask_blue, center, int(radius+10), (255, 255, 255), 3) #畫出圓心 
 cv2.circle(mask_blue, center, 3, (0, 0, 255), -1) 

cv2.imshow('frame',frame)
cv2.imshow('hsv',hsv)
cv2.imshow('mask',mask_blue)
if cv2.waitKey(0)==ord('q'):
 cv2.destroyAllWindows()

靜態(tài)圖片識別效果

左邊是原始圖片,中間是蒙版后的二值圖,右邊就是HSV圖像,識別效果還是不錯的。
可以看到,目前選定的顏色基本可以將小人的輪廓全部篩選出來,其最大的部分恰好就在底盤,圓心位置正是我們需要的。

動態(tài)實時識別

我們給出動態(tài)圖,可以看一下動態(tài)實時識別的效果。

評價

采用顏色來對跳跳小人的底盤位置進行識別和定位效果不錯,而且這種方法和手機的像素及屏幕大小無關(guān),真正實現(xiàn)了各平臺通用。

預告

在下一篇博文中,我會對github上wechat-jump所采用的顏色遍歷方法進行驗證,敬請期待。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python遞歸法解決棋盤分割問題

    python遞歸法解決棋盤分割問題

    這篇文章主要為大家詳細介紹了python遞歸法解決棋盤分割問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python實現(xiàn)批量合并圖片到word文檔

    Python實現(xiàn)批量合并圖片到word文檔

    這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)批量合并指定文件夾中的所有圖片并插入到Word文檔中并保存,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-10-10
  • OpenCV特征提取與檢測之Shi-Tomasi角點檢測器

    OpenCV特征提取與檢測之Shi-Tomasi角點檢測器

    在角點檢測的世界里哈瑞斯無疑是最重要的方法之一,但Shi-Tomasi作為改進的算法也有很大應用場景,尤其是動態(tài)跟蹤用的還比較多,這篇文章主要給大家介紹了關(guān)于OpenCV特征提取與檢測之Shi-Tomasi角點檢測器的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • python如何輸入根號

    python如何輸入根號

    這篇文章主要介紹了python如何輸入根號,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python中高階函數(shù)的小實踐分享

    Python中高階函數(shù)的小實踐分享

    這篇文章主要為大家介紹了一些Python中高階函數(shù)的小實踐,文中的示例代碼講解詳細,對我們深入學習Python有一定的幫助,需要的可以參考下
    2023-05-05
  • Python Pygame實戰(zhàn)之打地鼠小游戲

    Python Pygame實戰(zhàn)之打地鼠小游戲

    Pygame庫是專門為了幫助做出的游戲和其他多媒體應用Python編程語言的一個開放源代碼模塊。本文將利用Pygame模塊制作一個打地鼠的小游戲,快跟隨小編一起學習一下吧
    2022-01-01
  • Python 實現(xiàn)自動完成A4標簽排版打印功能

    Python 實現(xiàn)自動完成A4標簽排版打印功能

    這篇文章主要介紹了Python 實現(xiàn)自動完成A4標簽排版打印功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python數(shù)據(jù)分析之聚類分析(cluster analysis)

    python數(shù)據(jù)分析之聚類分析(cluster analysis)

    聚類分析本身不是一個特定的算法,而是要解決的一般任務。它可以通過各種算法來實現(xiàn),這些算法在理解群集的構(gòu)成以及如何有效地找到它們方面存在顯著差異。這篇文章主要介紹了python數(shù)據(jù)分析之聚類分析(cluster analysis),需要的朋友可以參考下
    2021-11-11
  • python編寫扎金花小程序的實例代碼

    python編寫扎金花小程序的實例代碼

    這篇文章主要介紹了python編寫扎金花小程序的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python坐標軸操作及設(shè)置代碼實例

    Python坐標軸操作及設(shè)置代碼實例

    這篇文章主要介紹了Python坐標軸操作及設(shè)置代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06

最新評論