python openCV 同态滤波实现

本文介绍了一种使用Python和OpenCV实现的同态滤波方法,用于图像增强。通过将图像转换到频域,应用特定的传递函数,然后转换回空域,可以有效地改善图像的对比度和细节。代码示例展示了如何执行同态滤波并可视化处理前后的图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python openCV 同态滤波实现

def homofilter(I):
plt.subplot(1,2,1),plt.imshow(I),plt.title(‘原始图像’)
I = np.double(cv2.cvtColor(I,cv2.COLOR_RGB2GRAY))
m,n = I.shape
rL = 0.5
rH = 2
c =2
d0 = 20
I1 = np.log(I+1)
FI = np.fft.fft2(I1)
n1 = np.floor(m/2)
n2 = np.floor(n/2)
D = np.zeros((m,n))
H = np.zeros((m,n))
for i in range(m):
for j in range(n):
D[i,j]=((i-n1)**2+(j-n2)**2)
H[i,j]=(rH-rL)(np.exp(c(-D[i,j]/(d0**2))))+rL
print(‘D’,D)
print(‘H’,H)
I2 = np.fft.ifft2(H*FI)
I3 = np.real(np.exp(I2))
plt.subplot(1,2,2),plt.imshow(I3),plt.title(‘同态滤波增强后的图像’)
plt.show()

plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
plt.rcParams[‘axes.unicode_minus’] = False
img = cv2.imread(‘capture.png’)
(r,g,b)=cv2.split(img) #颜色通道调整
img = cv2.merge([b,g,r])
homofilter(img)

效果:
这里写图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值