#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 для обращения к подразделу изображения. Вы можете сделать это напрямую, как для чтения, так и для записи.