Манипулирование подразделом изображения в MATLAB

#image-processing #matlab

#обработка изображений #matlab

Вопрос:

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

Я могу определить подраздел изображения, в котором находится объект, массив размером m на m. Мне просто нужна возможность размыть этот раздел с помощью фильтра. Однако imfilter использует полноразмерный массив (изображение) в качестве входных данных, поэтому я не могу просто перемещаться по этому массиву попиксельно в for цикле. Но, если я попытаюсь удалить изображение, чтобы сделать снимок, я не смогу вставить его обратно, не используя другой for цикл, что было бы дорогостоящим вычислением.

Существует ли способ отображения размытия на подраздел изображения с помощью MATLAB? Можно ли это сделать без использования двух for циклов?

Ответ №1:

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

 sub_image = original_image(ii:jj,mm:nn)
blurred_sub_image = imfilter(sub_image, etc)
original_iamge(ii:jj,mm:nn) = blurred_sub_image
 

Короче говоря, вам не нужно использовать цикл for для обращения к подразделу изображения. Вы можете сделать это напрямую, как для чтения, так и для записи.