【Python】【OpenCV】傅里叶变换

十念  金牌会员 | 2024-1-16 07:02:16 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 903|帖子 903|积分 2709

之前的随笔中使用了C++来编写算法底层逻辑,这次我们直接使用OpenCV和Numpy和Scipy所提供的方法直接调用实现
  1. 1 import cv2
  2. 2 import numpy
  3. 3 from scipy import ndimage
  4. 4
  5. 5 kernel_3 = numpy.array([
  6. 6     [-1, -1, -1],
  7. 7     [-1, 8, -1],
  8. 8     [-1, -1, -1]
  9. 9 ])
  10. 10
  11. 11 kernel_5 = numpy.array([
  12. 12     [-1, -1, -1, -1, -1],
  13. 13     [-1, 1, 2, 1, -1],
  14. 14     [-1, 2, 4, 2, -1],
  15. 15     [-1, 1, 2, 1, -1],
  16. 16     [-1, -1, -1, -1, -1]
  17. 17 ])
  18. 18
  19. 19 img = cv2.imread('Pic.webp', 0)
  20. 20 k3 = ndimage.convolve(img, kernel_3)
  21. 21 k5 = ndimage.convolve(img, kernel_5)
  22. 22 blurred = cv2.GaussianBlur(img, (17, 17), 0)
  23. 23 hpf = img - blurred
  24. 24
  25. 25 cv2.imshow('IMG', img)
  26. 26 cv2.imshow('K3', k3)
  27. 27 cv2.imshow('hpf', hpf)
  28. 28
  29. 29 cv2.waitKey()
  30. 30 cv2.destroyAllWindows()
复制代码
随机在网上搜索灰度图然后Down下来保存名字为Pic即可。
19 Line中的 cv2.imread()中的第二个参数很重要,有三种模式,RGB,Gray scale,NoChange,具体请自行搜索。我们需要选择Gray scale即数字0就可以表示了。
 至于convolve方法其实可以自己实现,具体参照之前的【图像处理】随笔。
23 Line中的减法作用,bulrred变量被经过高斯低通滤波处理的img赋值,而numpy数组是可以直接进行加减法运算的,此时得到的 hpf 变量就是原图锐化的结果。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

十念

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表