Как называется этот эффект и как его достичь с помощью Matlab? - PullRequest
1 голос
/ 28 октября 2011

Я пытаюсь создать следующий "эффект" из базовой фигуры в MATLAB:

http://i.imgur.com/DkLVp.png

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

Есть ли имя для этого эффекта, функция для этогов MATLAB или алгоритм, который делает это с нуля?

спасибо

Ответы [ 2 ]

3 голосов
/ 28 октября 2011

Я думаю, вы ищете bwdist.

Отображаемое изображение выглядит как положительная часть функции расстояния от границы вашей фигуры.Вы можете легко выполнить это в Matlab, используя примеры на вышеупомянутой странице справочника .

2 голосов
/ 28 октября 2011

Попробуйте это:

I = imread('brown_image.png');
I_bw = (rgb2gray(I) > 0);   % or whatever, just so I_bw is 1 in the 'brown' region
r = 10;
se1 = strel('disk', r);
se2 = strel('disk', r-1);
imshow(imdilate(I_bw, se1) - imdilate(I_bw, se2))

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

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