matlab 同态滤波
2023-09-14 09:14:35 时间
文章目录
处理图片:
![在这里插入图片描述](https://img-blog.csdnimg.cn/45f9609c21f84b2a88eafd354b41b01a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bed5bed6I-c6bif,size_20,color_FFFFFF,t_70,g_se,x_16)
代码:
clear all
clc
%参数声明
rH = 1;
rL = 0.1;
c = 0.2;%介于rH和rL之间
D0 = 0.2;
image = imread('3.bmp');
[M, N] = size(image);
%取对数
img_log = log(double(image) + 1);
%平移到中心,判断语句代替指数计算
img_py = zeros(M, N);
for i = 1:M
for j= 1:N
if mod(i+j, 2) == 0
img_py(i,j) = img_log(i, j);
else
img_py(i,j) = -1 * img_log(i, j);
end
end
end
% 对填充后的图像进行傅里叶变换
img_py_fft = fft2(img_py);
%同态滤波函数
img_tt = zeros(M, N);
deta_r = rH - rL;
D = D0^2;
m_mid=floor(M/2);%中心点坐标
n_mid=floor(N/2);
for i = 1:M
for j =1:N
dis = ((i-m_mid)^2+(j-n_mid)^2);
img_tt(i, j) = deta_r * (1-exp((-c)*(dis/D))) + rL;
end
end
%滤波
img_temp = img_py_fft.*img_tt;
%反变换,取实部,绝对值
img_temp = abs(real(ifft2(img_temp)));
%指数化
img_temp = exp(img_temp) - 1;
%归一化处理
max_num = max(img_temp(:));
min_num = min(img_temp(:));
range = max_num - min_num;
img_after = zeros(M,N,'uint8');
for i = 1 : M
for j = 1 : N
img_after(i,j) = uint8(255 * (img_temp(i, j)-min_num) / range);
end
end
figure
imshow(image), title('原图像');
figure
imshow(img_after), title('变换后');
imwrite(img_after,'同态滤波.png');
运行:
相关文章
- matlab 点云配准——计算配准精度
- matlab 点云可视化(2)——pcshowpair()可视化两点云之间的差异
- matlab 移除点云中无效的点
- 主动配电网故障恢复的重构与孤岛划分统一模型(Matlab代码实现)
- 基于粒子群优化算法的微型燃气轮机冷热电联供系统优化调度(Matlab代码实现)
- 【优化调度】基于模拟退火优化算法求解船舶优化调度问题(Matlab代码实现)
- 基于粒子群优化算法的冷热电联供型综合能源系统运行优化(Matlab代码实现)
- 基于调制误差比的自适应调制matlab仿真,自适应调制包括4QAM,16QAM和64QAM
- 基于farrow结构的时间同步算法matlab仿真
- m基于matlab的BTS天线设计,带GUI界面
- m认知无线电信号检测算法matlab仿真,能量检测,循环平稳检测以及自相关检测
- m基于GA遗传优化和OSPF协议的WSN最短路由算法matlab仿真,并输出节点的不同层域
- m基于ACO蚁群优化的货车运输路线规划matlab仿真,考虑车辆载重,单位运输成本等因素
- m基于K-means和Label+Propagation的半监督网页分类-图像分割matlab仿真
- LabVIEW使用MathScript Node或MATLAB脚本时出现错误1046
- 【车间调度】基于遗传算法的柔性车间调度(Matlab代码实现)
- MATLAB代码转到FPGA代码