Как сгладить и извлечь объект из глубины

Я использую набор данных, который предоставляет глубинные изображения человека, мне нужно извлечь объект из этого изображения или, по крайней мере, удалить другие искажения в изображении, которые не принадлежат человеческому телу. В Matlab.

образец изображений показан ниже:

Тело человека в красном и шум в черном цветах

Это вывод, когда я использовал

I = imread ('39.jpg');
human = sum(I,3)>10+10;

человек

Любой способ сделать это, пожалуйста? заранее спасибо

1 ответ

Решение

Для изображения, которое вы показываете, где все в оттенках серого, но что-то красное, просто сделайте:

so=imread('https://stackru.com/images/af988d2d39d9a3b9846827c0baf11f13b1fb8292.jpg');
human=sum(abs(diff(single(so),1,3)),3)>20;

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

На результирующем изображении присутствуют крошечные артефакты, вероятно, из-за jpg, Когда вы занимаетесь наукой, вам нужно хранить в png, Если у вас нет другого выбора, кроме jpgтогда у вас могут быть артефакты.

Другие вопросы по тегам