Как я могу извлечь земли из цветной карты? - PullRequest
0 голосов
/ 13 мая 2019

У меня проблемы с извлечением земель из этой игровой карты.

map of middle-earth

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

Я попробовал алгоритм сегментации HSV, порогового значения и водораздела, и они не работали оптимально.Изображение все еще шумное и участки земли отрезаны.

Кто-нибудь может предложить какие-либо альтернативные методы?Спасибо.

1 Ответ

2 голосов
/ 13 мая 2019

Этот вопрос довольно сложный.Я представляю простой подход, который, тем не менее, дает только грубое приближение.

  1. преобразование изображения rgb в оттенки серого
  2. применение порога для получения черно-белого изображения
  3. заливкадыры (фоновые пиксели, которые не могут быть достигнуты снаружи)
  4. помечают области и фильтруют их с областью ниже порога

In сделал это в Matlab

im = imread('FyrNE.jpg');
I = rgb2gray(im);
[L, n] = bwlabel(bwareafilt(I>160,[1e2,Inf]));
imagesc(imfill(L, 'holes'))

Это результат с 12 обнаруженными странами, который все еще неоптимален.

enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...