我想跟着兔子在遊戲中的winterbells。下面是一些截圖我如何找到兔子?
本來我以爲我可以遵循的顏色只兔子了,但似乎所有對象(即鍾和鴿子)具有相同的顏色。我可以通過只搜索白色來檢測所有對象(查看結果)
但我找不出如何找到兔子。我必須使用opencv嗎?我使用的唯一模塊是pil檢測像素的顏色。這似乎是一個容易的任務,但我不明白我能做到這一點。
我想跟着兔子在遊戲中的winterbells。下面是一些截圖我如何找到兔子?
本來我以爲我可以遵循的顏色只兔子了,但似乎所有對象(即鍾和鴿子)具有相同的顏色。我可以通過只搜索白色來檢測所有對象(查看結果)
但我找不出如何找到兔子。我必須使用opencv嗎?我使用的唯一模塊是pil檢測像素的顏色。這似乎是一個容易的任務,但我不明白我能做到這一點。
最簡單的方法是按區域對形狀進行分類。這裏有一個解決方案與SimpleCV:現在
>>> from SimpleCV import *
>>> image = Image('image.png')
>>> binarized = image.binarize(220).invert()
>>> binarized.show()
,這是非常容易的工作。您可以使用簡單的斑點檢測篩選出的鐘聲和小鳥:
>>> blobs = binarized.findBlobs()
>>> for blob in blobs:
... blob.draw()
... print blob
... binarized.show()
... raw_input()
按輸入 50倍,看斑點的面積後,您會發現,鐘有630之間的區域和660這隻鳥的540的面積和兔子有大約750
的區域現在,它只是一個過濾掉斑點的事你不想:
>>> rabbit = next(b for b in blobs if abs(750 - b.area()) < 60)
>>> rabbit.draw()
>>> binarized.show()
>>> rabbit
SimpleCV.Features.Blob.Blob object at (381, 445) with area 754
有你的兔子。
所以包東西,你的腳本看起來像:
from SimpleCV import *
image = Image('image.png')
binarized = image.binarize(220).invert()
blobs = binarized.findBlobs()
rabbit = next(b for b in blobs if abs(750 - b.area()) < 60)
print rabbit.coordinates()
我想,你可以嘗試使用svm來分類兔子和鍾。首先,你可以檢測所有對象,然後用svm對它們進行分類。
使用SimpleCV。與其合作會更容易。我只是使用斑點檢測來找到白色斑點。 – Blender
我會檢查simplecv,但即使與斑點檢測如何區分兔子和鐘聲? – bab