2d удаление базовой линии с краев изображения
У меня есть изображение, скажем, например
z=double(rgb2gray(imread('onion.png')));
z=z./max(z(:));
imagesc(z)
Тем не менее, ~10 пикселей со всех сторон я получаю другую базовую линию, которую я хотел бы удалить. Базовая линия, вероятно, из-за артефакта усиления пикселей по краям.
Искусственно, я могу создать этот эффект следующим образом:
m=zeros(size(z));
m(1,:)=5; m(end,:)=5;
m(:,1)=5; m(:,end)=5;
m=conv2(m,fspecial('gaussian',15,3),'same');
Таким образом, изображение, которое я на самом деле получаю, это:
imagesc(z+m); % I assume the effect is additive but I dont know that
Я хотел бы удалить этот базовый кадр и сохранить исходную информацию по краям изображения. Есть идеи?
Некоторые изображения имеют очень плавные функции, поэтому я попытался избавиться от "рамки", обрезая стороны и экстраполируя, но это не очень хорошо работает.