ext*_*ion 4 matlab image-processing
我有两个图像,一个是降级的,一个是原始图像的一部分.我需要使用第二个图像来增强第一个图像,我需要在频域中执行此操作.我从降级图像中剪切了相同的区域,进行了FFT,并尝试计算传递函数,但是当我将该函数应用于图像时,结果非常糟糕.
所以我试图h=fspecial('motion',9,45);成为我的传递函数,然后使用下面给出的代码重建图像.
im = imread('home_degraded.png');
im = rgb2gray(im);
h = fspecial('motion',9,45);
H = zeros(519,311);
H(1:7,1:7) = h;
Hf = fft2(H);
d = 0.02;
Hf(find(abs(Hf)<d))=1;
I = ifft2(fft2(im)./Hf);
imshow(mat2gray(abs(I)))
Run Code Online (Sandbox Code Playgroud)
我现在有两个问题:
如何通过使用小矩形生成传递函数(我的意思是不使用h=fspecial('motion',9,45);)?
我可以使用哪些方法来消除增强图像中的噪点?

小智 5
我可以推荐几种方法:
算术平均滤波器:
f = imfilter(g, fspecial('average', [m n]))
Run Code Online (Sandbox Code Playgroud)几何平均滤波器
f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n))
Run Code Online (Sandbox Code Playgroud)谐波均值滤波器
f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate');
Run Code Online (Sandbox Code Playgroud)
其中n和m是掩码的大小(例如,你可以设置m = 3 n = 3)
| 归档时间: |
|
| 查看次数: |
8977 次 |
| 最近记录: |