2015-07-17 2 views
2

Я использую opencv color blob detection для обнаружения маленькой белой точки с черным фоном. когда точка большая, она может ее обнаружить, но когда точка мала, она не может обнаружить. Я думаю, что есть параметр, который мы можем установить для маленькой точки в цветовом детекторе, но я не мог найти этого. Любое тело знает об этом? или любое тело знает лучший и быстрый способ обнаружить белый цвет? обратите внимание: в камере есть только белая точка, и весь фон черный.android color detection opencv

это картина, когда объект большой (камера находится рядом с объектом):

http://www.axgig.com/images/14410928700656745289.png

и это, когда объект мал (фотокамера находится далеко от объекта) :

http://www.axgig.com/images/00768609020826910230.png

Я хочу, чтобы обнаружить координаты белой point.How?

+0

Я использовал это, но это наклоняется обнаружите, что –

+0

Посмотрите [здесь] (http://stackoverflow.com/a/31465462/5008845) и [здесь] (http://stackoverflow.com/a/31281725/5008845) – Miki

+1

Возможный дубликат [Android OpenCV Определение цвета] (http://stackoverflow.com/questions/31281195/android-opencv-color-detection) – Miki

ответ

1

Если весь остаток фона черный, а область интереса белая, вы можете найти центр, используя Moments function в модуле Imgproc. Вы можете прочитать о математике за ней at Wikipedia, но, проще говоря, суммирует взвешенное положение всех ненулевых точек. Если у вас есть Moments структуру, вы можете вычислить центр по:

x = moments.m10/moments.m00 
y = moments.m01/moments.m00 

В вашем случае, используя Android и OpenCV, это код, который вы будете использовать:

// inputMat is the Mat that you took screenshots of earlier in the question. 
Moments moments = Imgproc.moments(inputMat, true); 
float center_x = moments.m10/moments.m00; 
float center_y = moments.m01/moments.m00; 
// now center_x and center_y have the coordinates of the center of the blob. 
+0

что делает момент? –

+0

У меня есть белая точка на черном фоне, и я хочу определить координату точки. –

+0

Вы можете найти центр белой формы с предоставленными мной кодом x и y. Если вас интересует математика позади нее, ознакомьтесь с ссылкой в ​​Википедии. –