Combining detail scales of different images

1 次查看(过去 30 天)
I have created a series of high pass filters of different standard deviations, and I am looking for a way to combine them to maintain the small scale detail of the low sdevs, and the large scale detail of the high sdevs. Currently I am just using a sum with this code:
clear
clc
a=imread('avg.tif');
a=double(a);
[m,n]=size(a);
sdevs=linspace(.4,40,30);
for i=1:length(sdevs)
filtj=imgaussfilt(a,sdevs(i));
b{i}=a-filtj;
end
S=0;
for k=1:length(sdevs)
S=S+b{k};
end
c=1.1*S+.4*a;
clearvars b
imshow(c,[0 39000])
  3 个评论
Bray Falls
Bray Falls 2019-8-1
So I have performed a set of gaussian low pass filters on one target image, and subtracted each from the target image to obtain a set of high pass filters, each enhancing detail of a particular scale. I want to integrate the high pass filters so that the structures in the smallest scale filter don't get washed out by the enhancements made in the large scale filters.
I have attempted performing just a simple sum of the set of filters, but it washed out the smaller details quite a bit.
Subhadeep Koley
Subhadeep Koley 2019-8-5
From my understanding you only want to boost the high frequency "detail" components without affecting the low frequency "approximation" components right ?

请先登录,再进行评论。

回答(1 个)

Kavya Vuriti
Kavya Vuriti 2019-8-5
Hi,
Instead of using simple sum, you can try using weighted summation. The images obtained from small scale filters can be given higher weights so that the structures in the small-scale filter doesn’t get washed out.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by