• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

数字图像处理实验(8):PROJECT04-04,HighpassFilteringUsingaLowpassImage标签:图 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

实验要求:

高通滤波器可以通过1减去低通滤波器的传递函数得到。
使用公式 计算可以的得到 。

实验代码:

% PROJECT 04-04 Highpass Filtering Using a Lowpass Image
close all;
clc;
clear all;

%
img = imread('Fig4.11(a).jpg');
img = mat2gray(img);
figure;
subplot(2,2,1);
imshow(img);
title('原图像');

% 产生滤波函数
[M, N] = size(img);
P = 2 * M;
Q = 2 * N;

alf = 50;
H = zeros(P, Q);
for i = 1:P
    for j = 1:Q
        H(i, j) = exp(-((i-P/2)^2 + (j-Q/2)^2) / (2 * alf^2));
    end
end

% H = ones(P, Q);
subplot(2,2,2);
imshow(H);
title('滤波函数');

%
% 图像填充
[M, N] = size(img);
P = 2 * M;
Q = 2 * N;

img_fp = zeros(P, Q);
img_fp(1:M, 1:N) = img(1:M, 1:N);

% [X, Y] = meshgrid(1:P, 1:Q);
% ones = (-1)^(X+Y);

% img_f = ones .* img_fp;
img_f = zeros(P, Q);
for x = 1:P
    for y = 1:Q
        img_f(x, y) = img_fp(x, y) .* (-1)^(x+y);
    end
end

img_F = fft2(img_f);

img_G = img_F .* H;
img_g = real(ifft2(img_G));

% img_g = ones .* img_g;

for x = 1:P
    for y = 1:Q
        img_g(x, y) = img_g(x, y) .* (-1)^(x+y);
    end
end

img_o = img_g(1:M, 1:N);

subplot(2,2,3);
imshow(img_o, []);
title('高斯低通滤波后的图像');

%
img_gmask = img_o - img;
subplot(2,2,4);
imshow(img_gmask, []);
title('高斯高通滤波后的图像');

前面的代码与此前的实验相同,下面是最后的高通滤波处理。img_o 是前面得到的高斯低通滤波处理后的图像,使用原图像减去它,得到的就是高斯高通滤波后的图像了。

img_gmask = img_o - img;
subplot(2,2,4);
imshow(img_gmask, []);
title('高斯高通滤波后的图像');

实验结果:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap