определить контуры на изображении одного цвета с помощью opencv или javacv?

Этот вопрос связан с моим предыдущий вопрос в этом вопросе я использовал цветное изображение в качестве входных данных, и оно идентифицируется с помощью цвета линии, но мне нравится знать, как идентифицировать такое изображение с помощью изображения в градациях серого. Это входное изображение в оттенках серого, и его необходимо идентифицировать.

введите здесь описание изображения

И мне нужно идентифицировать следующие объекты с их позициями (координаты x и y).

введите здесь описание изображения

Пожалуйста, может кто-нибудь объяснить на простом примере кода, чтобы идентифицировать эти объекты, и мне также нужно идентифицировать соединенные линии этих объектов (как показано на следующем рисунке).

введите здесь описание изображения

Пожалуйста, объясните это на простом примере кода.


person NadLnk    schedule 23.08.2012    source источник


Ответы (1)


Концепция решения такая же, как и в предыдущем вопросе - используйте расширение и эрозию:

Mat src = imread("input.jpg"), tmp;

cvtColor(src, tmp, CV_BGR2GRAY);
threshold(tmp, tmp, 200, 255, THRESH_OTSU);

Mat element = getStructuringElement(MORPH_RECT, Size(3, 3), Point(1, 1));
dilate(tmp, tmp, element);
erode(tmp, tmp, element);

Результат:

введите здесь описание изображения

person ArtemStorozhuk    schedule 23.08.2012
comment
Но как мне найти квадрат вокруг этого черного ящика? а как читать строки которые связаны теми ? - person NadLnk; 23.08.2012