您的位置:首页 > 脚本大全 > > 正文

pythonopencv自定义阈值算法(理想高通滤波实现Python opencv示例)

更多 时间:2022-04-01 01:02:06 类别:脚本大全 浏览量:2297

pythonopencv自定义阈值算法

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

理想高通滤波实现 python opencv

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 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.jpg" alt="pythonopencv自定义阈值算法(理想高通滤波实现Python opencv示例)" border="0" />
  • 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()
  • 效果:

    pythonopencv自定义阈值算法(理想高通滤波实现Python opencv示例)

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接

    原文链接:https://blog.csdn.net/qq_34725005/article/details/82695309

    您可能感兴趣