Как сгладить и извлечь объект из глубины
Я использую набор данных, который предоставляет глубинные изображения человека, мне нужно извлечь объект из этого изображения или, по крайней мере, удалить другие искажения в изображении, которые не принадлежат человеческому телу. В 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
тогда у вас могут быть артефакты.