翼度科技»论坛 编程开发 python 查看内容

【Python】【OpenCV】傅里叶变换

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
之前的随笔中使用了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 变量就是原图锐化的结果。

来源:https://www.cnblogs.com/vangoghpeng/p/17863202.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具