Если у вас есть лицензия для инструментария для обработки изображений, вы можете попробовать использовать, например, medfilt2
, чтобы применить к нему медианный фильтр. Фильтр с 11 по 11 срединным должен делать трюк. Не совсем сложно переопределить фильтр самостоятельно, если у вас нет инструментария.
Это только одна из возможностей, вы можете использовать множество различных фильтров, которые будут иметь разные удары по удалению края резкости.
Edit: Вот быстрое внедрение медианный фильтр (он может содержать ошибки и могут быть оптимизированы):
function ret = imageMedianFilter(im, np)
if(size(np,2) == 1)
npx = np;
npy = np;
else
npx = np(1);
npy = np(2);
end
ret = zeros(size(im,1),size(im,2));
for xpos = 1:size(im,1)
for ypos = 1:size(im,2)
curval = double(0);
if(xpos + npx - 1) > size(im,1)
npixels_x = size(im,1) - xpos + 1;
else
npixels_x = npx;
end
if(ypos + npy - 1) > size(im,2)
npixels_y = size(im,2) - ypos + 1;
else
npixels_y = npy;
end
a = im(xpos:xpos+npixels_x-1 , ypos:ypos+npixels_y-1);
a = reshape(a,1,size(a,1)*size(a,2));
curval = median(a);
ret(xpos , ypos) = curval;
end
end
ret = uint8(ret);
end
Вы можете использовать его на R, G и компонент B, как показано на Rotem ниже:
RGB = cat(3, imageMedianFilter(RGB(:,:,1), [11,11]), imageMedianFilter(RGB(:,:,2), [11,11]), imageMedianFilter(RGB(:,:,3), [11,11]));
(при условии, что ваше изображение имеет название RGB).
Почему вы размещения изображения в 'jpg' формате? Формат 'jpg' - это формат [lossy compression] (https://en.wikipedia.org/wiki/Lossy_compression), который создает артефакты. Пожалуйста, замените изображение на формат 'png'. – Rotem
Ты отлично справляешься с этим! Аккуратно, правда! Я рад, что вы нашли время, чтобы прочитать и изменить наши ответы! –
Благодарим вас за руководство. Это интересно сделать это возможным. – pring