同态滤波

对于一幅由物理过程产生的图像f(x,y),可以表示为照射分量i(x,y)和反射分量r(x,y)的乘积。0<i(x,y)<∞,0<r(x,y)<1。i(x,y)描述景物的照明,变化缓慢,处于低频成分。r(x,y)描述景物的细节,变化较快,处于高频成分。

因为该性质是乘性的,所以不能直接使用傅里叶变换对i(x,y)和r(x,y)进行控制,因此可以先对f(x,y)取对数,分离i(x,y)和r(x,y)。令z(x,y) = ln f(x,y) = ln i(x,y) + ln r(x,y)。在这个过程中,由于f(x,y)的取值范围为[0, L-1],为了避免出现ln(0)的情况,故采用ln ( f(x,y) + 1 ) 来计算。

然后取傅里叶变换,得到 Z(u,v) = Fi(u,v) + Fr(u,v)。

然后使用一个滤波器,对Z(u,v)进行滤波,有 S(u,v) = H(u,v) Z(u,v) = H(u,v)Fi(u,v) + H(u,v)Fr(u,v)。

滤波后,进行反傅里叶变换,有 s(x, y) = IDFT( S(u,v) )。

最后,反对数(取指数),得到最后处理后的图像。g(x,y) = exp^(s(x,y)) = i0(x,y)+r0(x,y)。由于我们之前使用ln ( f(x,y)+1),因此此处使用exp^(s(x,y)) - 1。 i0(x,y)和r0(x,y)分别是处理后图像的照射分量和入射分量。

实现代码

import os
import cv2
from PIL import Image
import numpy as npdef homomorphic_filter(src, d0=10, r1=0.5, rh=2, c=4, h=2.0, l=0.5):gray = src.copy()if len(src.shape) > 2:gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)gray = np.float64(gray) rows, cols = gray.shapegray_fft = np.fft.fft2(gray)gray_fftshift = np.fft.fftshift(gray_fft)dst_fftshift = np.zeros_like(gray_fftshift)M, N = np.meshgrid(np.arange(-cols // 2, cols // 2), np.arange(-rows//2, rows//2))D = np.sqrt(M ** 2 + N ** 2)Z = (rh - r1) * (1 - np.exp(-c * (D ** 2 / d0 ** 2))) + r1dst_fftshift = Z * gray_fftshiftdst_fftshift = (h - l) * dst_fftshift + ldst_ifftshift = np.fft.ifftshift(dst_fftshift)dst_ifft = np.fft.ifft2(dst_ifftshift)dst = np.real(dst_ifft)dst = np.uint8(np.clip(dst, 0, 255))return dstpath = "img.bmp"
if os.path.isfile(path):print("path {} is existence;".format(path))img = Image.open(path)Img = img.convert('L')img = np.array(img)print(img, img.shape)
img_new = homomorphic_filter(img)
print("new img shape is {}".format(img_new.shape))
cv2.imwrite("2.png", img_new)

python实现同态滤波相关推荐

  1. 数字图像处理杂项-同态滤波

    内容简介 同态滤波原理 同态滤波python实现 同态滤波调参技巧 同态滤波原理 这里先看讲义介绍如下: 首先上面的分析一共有三点需要注意: 取对数,目的是基于我们假定的图像模型将低频和高频信号进行分 ...

  2. MATLAB图像处理_同态滤波1

    原 MATLAB图像处理_同态滤波 2015年01月20日 09:54:25 风雨也无晴 阅读数:14234 <span class="tags-box artic-tag-box&q ...

  3. [Python图像处理] 使用高通滤波器实现同态滤波

    使用高通滤波器实现同态滤波 同态滤波基础 实现同态滤波 相关链接 同态滤波基础 同态滤波是一种去除图像中乘性噪声的技术,常用于校正图像中的不均匀照明.根据图像形成的光照反射模型,图像 f(x,y)f( ...

  4. 同态滤波 python_使用python差异隐私和同态的各种数据隐私保护方法

    同态滤波 python Matt Canute, Young-Min Kim, Donggu Lee, Suraj Swaroop, Adriena Wong Matt Canute,Kim Youn ...

  5. 图像增强之同态滤波python实现——20221204工作总结

    目录 参考 同态滤波python实现 代码 效果 参考 [1]https://wenku.baidu.com/view/4eb598180a12a21614791711cc7931b765ce7ba9 ...

  6. python中matlab函数图像处理,MATLAB图像处理--同态滤波(代码及示例)

    一幅图像f(x,y)能够用它的入射光分量和反射光分量来表示,其关系式如下 f(x,y)=i(x,y)r(x,y) 图像f(x,y)是由光源产生的照度场i(x,y)和目标的反射系数场r(x,y)的共同作 ...

  7. 传统图像增强算法python实现

    本文参照:图像增强综述 - FANG_YANG - 博客园 (cnblogs.com)对传统图像增强方法做了总结,并把相关代码由matlab转成了python. 1. 像素级方法 1.1图像反转 图像 ...

  8. Python+OpenCV图像处理(一篇全)

    参考:1.网易云课堂 Python+OpenCV图像处理 - 网易云课堂 2.[在水一方xym的博客]业精于勤荒于嬉,行成于思毁于随 - CSDN博客 https://blog.csdn.net/za ...

  9. OpenCV —— 频率域滤波(傅里叶变换,低通和高通滤波,带通和带阻滤波,同态滤波)

    频率域滤波 基本概念 傅里叶变换 二维离散的傅里叶变换 快速傅里叶变换 傅里叶幅度谱与相位谱 谱残差显著性检测 卷积与傅里叶变换的 频率域滤波 低通滤波和高通滤波 带通和带阻滤波 同态滤波 基本概念 ...

  10. 数字图像处理与Python实现

    1.数字图像处理基础知识 1.1数字图像简介 目的 提升图像的视觉感知质量 提取图像中感兴趣区域或特征 方便图像的存储和运输 特点 可再现能力强 处理精度高 适用范围广 灵活性高 方法 图像变换 图像 ...

最新文章

  1. linux目录怎么自动生成,情景linux--如何快速生成大文件?
  2. HBase基础和伪分布式安装配置
  3. 如何在 Windows 上安装 Python | Linux 中国
  4. c语言const限制什么,[C语言]类型限定词const解析
  5. Android 更加开放了!
  6. ios 仿微信,短信聊天气泡
  7. pythonmain是什么_Python - __name__=='__main__'是干啥的,以及python -m与python的区别
  8. Improving Transferability of Adversarial Examples with Input Diversity论文解读
  9. Dijkstra算法C++实现
  10. filter()“筛选”函数
  11. [纯理论] FCOS
  12. ARM来中关村“卖艺”,地平线机器人科技拜码头
  13. vb如何调用计算机日历,跪求vb.net简易日历制作的源代码
  14. 软件工作量评估方法(一)
  15. 彻底删除aws亚马逊服务器使之不再计费
  16. 微软输入法半角全角切换
  17. 软件实现串口程序出售,9600收发毫无压力。 采用io管脚模拟,适合串口资源欠缺的芯片使用。 stm32,tms320f28xx,PIC等
  18. html正则表达式怎么写用户名非空,js通过正则匹配没有内容的空标签
  19. VS2005的R6034错误 (转载)
  20. 计量经济学学习笔记:多重共线性、异方差、自相关

热门文章

  1. 数独1--暴力回溯法(时间超)
  2. 最简短的加入收藏代码
  3. android自定义软键盘-中文与英文大小切换
  4. 一条查询SQL的执行流程
  5. Dell笔记本Alienware Command Center监测不到CPU和内存数据
  6. 农业银行网银证书的控件被阻止的解…
  7. AutoCAD2015 下载安装教程与使用技巧(已测有效)
  8. linux系统装psp,psp上装Linux
  9. UE4/UE5 虚幻引擎,Light光照系列(一)
  10. 【静态网页制作大作业——个人博客搭建(HTML+CSS+Javascript)】