Как я могу найти граничную поверхность на этом изображении - PullRequest
0 голосов
/ 17 марта 2019

Я новичок в обработке изображений.Я хочу найти поверхность между черными и белыми пикселями, которая разделяет их.Вот ссылка на изображение.Размер изображения (21 900 900)

https://drive.google.com/file/d/1zUWK0Fb_n6f1JZou5mrUJq0x3h2X8mBK/view?usp=sharing

Я пытался использовать команду bordermask для MATLAB в одной плоскости изображения, но я получаю шум, а также он работает только для 2d изображения.Пожалуйста, предложите мне, как найти границу 3d поверхности здесь.Спасибо.Это выходное изображение после применения граничной маски.

How to find surface boundary between white and black

1 Ответ

1 голос
/ 17 марта 2019

Ваш первый шаг должен избавиться от вашего шума. Поскольку у вас есть какой-то солевой и перцовый шум, вы можете сделать это, используя медианный фильтр на 2D-изображении с medfilt2() в matlab. После этого вы можете использовать крайний дитектор, чтобы найти ваши краевые пиксели. Код для этого может выглядеть следующим образом. Если вы хотите поверхность, вы должны зациклить это, по 3-му измерению вашего 3D-изображения. Код будет выглядеть так:

for ii=1:16
    I=imread('image.tif',ii);
    I_bs=boundarymask(I);
    I_filt=medfilt2(I_bs,[7 7]);
    boundarysurface(:,:,ii)=edge(I_filt,'Canny');
end

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

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