這個(gè)夏天,席卷全球(什么時(shí)候可以席卷到中國= =)的Pokémon Go吸引了各路宅男宅女走出房間,更有大神把它和MATLAB聯(lián)系在一起,使用圖像處理技術(shù)黑入游戲,自動(dòng)搜索PokéStops,抓住小精靈們!
如何實(shí)現(xiàn)的呢?
首先獲取游戲截圖:
url = 'http://blogs.mathworks.com/steve/files/pokemon-go-screen.jpg';
rgb = imread(url);imshow(rgb)
圖片里的藍(lán)色圓環(huán)部分代表了PokéStop。我們的任務(wù)是在地圖上自動(dòng)搜素到它們。這里是關(guān)鍵的幾步:
通過顏色對(duì)圖像分區(qū);
使用形態(tài)學(xué)閉運(yùn)算清理分割區(qū)域;
計(jì)算連通部分的面積和圖心;
選擇最大對(duì)象。
首先,可以使用Color Thresholder,通常和Lab color space一起,根據(jù)顏色對(duì)圖像分區(qū)。下圖顯示了通過調(diào)整a*和b*的閾值來選出PokéStop的顏色區(qū)間。
使用imshow看一下分區(qū)結(jié)果:
第二步,使用形態(tài)學(xué)閉運(yùn)算進(jìn)一步調(diào)整PokéStop的圖形:
BW2 = imclose(BW,strel('disk',20));
imshow(BW2)
結(jié)果如下:
第三步,使用regionprops找到所有連通域,并計(jì)算面積和圖心。
在最新版的Image Processing Toolbox中,你可以讓regionprops以列表的方式返回計(jì)算結(jié)果,更加易讀:
t = regionprops('table',BW2,'area','centroid')
t =
Area Centroid
_____ ________________ 1157 37.43 665.14 13259 260.56 313.99 2 217 49.5 6 259 31.5 1 265 82 6 356.5 31.667 12 387.5 31.5
最后,找到其中最大的區(qū)域,并返回圖心位置:
[~,j] = max(t.Area);
location = t.Centroid(j,:)
location =
260.5581 313.9893
在最初的截圖中檢驗(yàn)一下計(jì)算結(jié)果:
imshow(rgb)
hold on
plot(location(1),location(2),'dy','MarkerSize',10,'MarkerFaceColor','y')
hold off
-
圖像處理
+關(guān)注
關(guān)注
27文章
1329瀏覽量
58059 -
形態(tài)學(xué)
+關(guān)注
關(guān)注
0文章
6瀏覽量
8240
發(fā)布評(píng)論請(qǐng)先 登錄
圖像信號(hào)分析處理卡設(shè)計(jì)原理圖:536-基于FMC接口的XCZU7EV 通用PCIe卡 視覺處理卡 工業(yè)控制卡

圖像采集卡:現(xiàn)代圖像處理技術(shù)的關(guān)鍵組件

FPGA上的圖像處理算法集成與優(yōu)化

FPGA圖像處理基礎(chǔ)----實(shí)現(xiàn)緩存卷積窗口

DFT在圖像處理中的作用 DFT在音頻信號(hào)處理中的應(yīng)用
射頻分析儀的技術(shù)原理和應(yīng)用場景
【每天學(xué)點(diǎn)AI】實(shí)戰(zhàn)圖像增強(qiáng)技術(shù)在人工智能圖像處理中的應(yīng)用

傅里葉變換與圖像處理技術(shù)的區(qū)別
FPGA在圖像處理領(lǐng)域的優(yōu)勢有哪些?
risc-v在人工智能圖像處理應(yīng)用前景分析
盛顯科技:投影融合處理器如何實(shí)現(xiàn)圖像的處理和融合?

評(píng)論