理想高通滤波实现Python opencv示例

yipeiwu_com6年前Python基础

理想高通滤波实现 python opencv

import numpy as np 
import cv2 
from matplotlib import pyplot as plt
plt.rcParams[‘font.sans-serif']=[‘SimHei'] 
plt.rcParams[‘axes.unicode_minus'] = False 
I = cv2.imread(‘capture3.png') 
cv2.imshow(‘original',I) 
(r,g,b) = cv2.split(I) 
I = cv2.merge([b,g,r]) 
J = np.double(cv2.cvtColor(I,cv2.COLOR_RGB2GRAY)) 
D1 = 30 
D2 = 60 
D3 = 160 
Fuv = np.fft.fftshift(np.fft.fft2(J)) 
print(‘Fuv',Fuv) 
print(I.shape) 
m,n = I.shape[0],I.shape[1] 
xo = np.floor(m/2) 
yo = np.floor(n/2) 
h1 = np.zeros((m,n)) 
h2 = np.zeros((m,n)) 
h3 = np.zeros((m,n)) 
for i in range(m): 
for j in range(n): 
D = np.sqrt((i-xo)**2+(j-yo)**2) 
if D>=D1: 
h1[i,j]=1 
else: 
h1[i,j]=0 
if D>=D2: 
h2[i,j]=1 
else: 
h2[i,j]=0 
if D>=D3: 
h3[i,j]=1 
else: 
h3[i,j]=0 
Guv1 = h1*Fuv 
Guv2 = h2*Fuv 
Guv3 = h3*Fuv 
g1 = np.fft.ifftshift(Guv1) 
g1 = np.uint8(np.real(np.fft.ifft2(g1))) 
print(‘g1',g1) 
g2 = np.fft.ifftshift(Guv2) 
g2 = np.uint8(np.real(np.fft.ifft2(g2))) 
print(‘g2',g2) 
g3 = np.fft.ifftshift(Guv3) 
g3 = np.uint8(np.real(np.fft.ifft2(g3))) 
print(‘g3',g3) 
plt.subplot(2,2,1),plt.imshow(I),plt.title(‘原图像') 
plt.subplot(2,2,2),plt.imshow(g1),plt.title(‘D0=30') 
plt.subplot(2,2,3),plt.imshow(g2),plt.title(‘D0=60') 
plt.subplot(2,2,4),plt.imshow(g3),plt.title(‘D0=160') 
plt.show()

效果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【听图阁-专注于Python设计】的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

基于Python实现剪切板实时监控方法解析

基于Python实现剪切板实时监控方法解析

前言 上网浏览网页的时候,看见好的内容免不了要使用复制粘贴,但是我们看到的内容、心里想要的内容和实际粘贴后的内容往往不一致。数据的获取始于复制,终于粘贴,那么问题来了,在这中间系统做了...

简单谈谈Python中的几种常见的数据类型

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需...

Python SQLite3数据库操作类分享

接触Python时间也不是很长的,最近有个项目需要分析数据,于是选用Python为编程语言,除了语言特性外主要还是看重Python对于SQLite3数据库良好的支持能力了,因为需要灵活处...

Python完成毫秒级抢淘宝大单功能

Python完成毫秒级抢淘宝大单功能

引言 年中购物618大狂欢开始了,各大电商又开始了大力度的折扣促销,我们的小胖又给大家谋了一波福利,淘宝APP直接搜索:小胖发福利,每天领取三次粉丝专属现金大红包。 有了现金大红包,如...

python判断数字是否是超级素数幂

如果一个数字能表示成 p^q,且p是一个素数,q为大于1的正整数,则此数字就是超级素数幂。 param number: 测试该数字是否是超级素数幂 return: 如果不是就返回 F...