1 利用傅里叶变换高通滤波

import numpy as np
import cv2
from matplotlib import pyplot as plt
from skimage.draw import diskdef fft_in_np(img):img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)f = np.fft.fft2(img) #灰度图像进行傅里叶变换fshift  = np.fft.fftshift(f) #把0频信息放到中心magnitude_spectrum = 20 * np.log(np.abs(fshift)) #制作频谱rows, cols = img.shaperow_half, col_half = rows // 2, cols // 2mask = np.ones((rows, cols), dtype=np.uint8) #创建一个maskrr, cc = disk((row_half, col_half), 10)mask[rr, cc] = 0 #把mask中心半径为10的圆盘值成0fshift = fshift * mask #把频域信息的低频mask为0f_ishift = np.fft.ifftshift(fshift) #把0频信息恢复位置img_back = np.fft.ifft2(f_ishift) #反傅里叶变换img_back = np.abs(img_back)plt.subplot(131),plt.imshow(img, cmap = 'gray')plt.title('Input Image'), plt.xticks([]), plt.yticks([])plt.subplot(132),plt.imshow(magnitude_spectrum, cmap = 'gray')plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])plt.subplot(133),plt.imshow(img_back, cmap = 'gray')plt.title('img_back'), plt.xticks([]), plt.yticks([])plt.show()img = cv2.imread('dqiocaoxfwu31.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
fft_in_np(img)

效果如下:

2 利用傅里叶变换锐化增强图像

import numpy as np
import cv2
from matplotlib import pyplot as plt
from skimage.draw import diskdef fft_in_np(img):img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)f = np.fft.fft2(img)fshift  = np.fft.fftshift(f)magnitude_spectrum = 20 * np.log(np.abs(fshift))rows, cols = img.shaperow_half, col_half = rows // 2, cols // 2mask = np.ones((rows, cols))mask = mask * 1.5rr, cc = disk((row_half, col_half), 10)mask[rr, cc] = 1fshift = fshift * maskf_ishift = np.fft.ifftshift(fshift)img_back = np.fft.ifft2(f_ishift)img_back = np.abs(img_back)plt.subplot(131),plt.imshow(img, cmap = 'gray')plt.title('Input Image'), plt.xticks([]), plt.yticks([])plt.subplot(132),plt.imshow(magnitude_spectrum, cmap = 'gray')plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])plt.subplot(133),plt.imshow(img_back, cmap = 'gray')plt.title('img_back'), plt.xticks([]), plt.yticks([])plt.show()img = cv2.imread('dqiocaoxfwu31.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
fft_in_np(img)

效果如下:

用opencv进行图像处理-利用傅里叶变换进行图像的高通滤波和锐化相关推荐

  1. OpenCV与图像处理学习十二——图像形状特征之HOG特征

    OpenCV与图像处理学习十二--图像形状特征之HOG特征 一.图像特征理解 1.1 颜色特征 1.2 纹理特征 1.3 形状特征 1.4 空间关系特征 二.形状特征描述 2.1 HOG特征 2.1. ...

  2. 利用傅里叶变换去除图像中有规律的噪声

    ImageJ是一个基于java的科学图像处理软件,它是由National Institutes of Health开发的.可运行于Microsoft Windows,Mac OS,Mac OS X,L ...

  3. OpenCV(C++)图像处理基础04:图像混合(线性混合操作)

    文章目录 1.知识点:线性混合数学模型 2.代码实现+测试结果 参考文献 学习了这些图像处理技巧,可以为深度学习目标检测数据集采取一些数据增强的方法或其他优化方法. 1.知识点:线性混合数学模型 进一 ...

  4. [图像处理] 利用PerlinNoise实现图像雾化效果 - 附我的图像处理程序(三种特效)

    时间:2017年7月2日(大三下学期) 写在前面: 最近觉得Steam的软件界面非常的美观,尤其是图片的渐隐.雾化效果看起来非常漂亮.无奈我PS技术不行,手笨做不出那样的效果-- 于是,我就自己写了一 ...

  5. 使用Python+opencv进行图像处理(一) | 视觉入门

    计算机视觉是人工智能最热门的应用领域之一.人工智能技术推动了汽车自动驾驶.机器人以及各种照片处理类软件的巨大发展.目标检测技术也在稳步推进.生成对抗网络(GANs)同样也是人们最近比较关注的一个问题. ...

  6. 《OpenCv视觉之眼》Python图像处理十六:Opencv图像处理实战一之图像中的硬币检测

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  7. 在OpenCV中利用卷积进行图像滤波

    简 介: 本文首先讨论了卷积核的概念,以及如何用于对图像进行滤波.然后通过他们对图像进行数学运算来实现特定的效果,比如平和和锐化.展示了如何在OpenCV中实现2D滤波. 在等同卷积卷积核之后,我们创 ...

  8. OpenCV中利用cvConvertScale()将图像的数据类型由u8转化为64f...

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 OpenCV中利用cvConvertScale( ...

  9. OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换

    OpenCV与图像处理学习五--图像滤波与增强:线性.非线性滤波.直方图均衡化与Gamma变换 三.图像滤波与增强 3.1 线性滤波 3.1.1 方框滤波 3.1.2 均值滤波 3.1.3 高斯滤波 ...

  10. 利用opencv进行图像处理,提取椭圆圆心处理

    利用opencv进行图像处理,提取椭圆圆心处理 写这个是因为项目正好在做这个,所以简单写写提取椭圆圆心坐标的代码,用的软件是VS. 首先介绍一下步骤,直接从图像处理开始 1,二值化处理(threhol ...

最新文章

  1. cross_val_score,cross_val_predict,cross_validate理解
  2. BIOS和Bootloader的区别
  3. jdbc中c3p0的配置信息
  4. 购物车完善版,客户余额及所购商品保存在文件
  5. 【06】sass编译工具(弃)
  6. Python之celery的简介与使用
  7. codeigniter view 试图里再引入view视图
  8. 博客园markdown公式
  9. Linux复习-shell程序设计
  10. Web端QR二维码扫描实现
  11. VB.NET Crystal Reports 水晶报表 自定义工具栏
  12. html自动触发双击事件,js主动触发单击事件
  13. 毕业生自传---(蝶变亚信)
  14. 开学作业——如何做好课堂笔记
  15. React `controlled` 及 `uncontrolled` 组件
  16. YOLOv5、CNN、SVM实现车牌检测
  17. SVN提交报错 Attempted to lock an already-locked dir
  18. Twitter新任80后印度裔CEO,为啥是他?
  19. vue 中provide的用法_vue 中的 provide 和 inject 用法
  20. python 期货现货差价监测_大宗商品现货数据不好拿?商品季节性难跟踪?Python爬虫一键解决没烦恼...

热门文章

  1. IBM中低端存储解决方案
  2. Luogu2572 [SCOI2010]序列操作
  3. BZOJ1096[ZJOI2007] 仓库建设
  4. 前端性能优化学习(慕课网)笔记
  5. nginx负载均衡核心模块(upstream和proxy模块)及常用参数介绍
  6. java证明角谷猜想_Java 代码界 3% 的王者?看我是如何解错这 5 道题的
  7. 对象流的序列化和反序列化
  8. rs232无线串口服务器,低成本WIFI串口服务器
  9. idea用svn怎么检出项目_IDEA 从SVN检出项目相关配置
  10. Introduction to Computer Networking学习笔记(十四):网络中为什么使用packet switching