网站内容建设,给我看免费观看,济宁医院网站建设,房子做水电的时候是不是要先埋网站1、傅里叶变换a、傅里叶变换原理时域分析#xff1a;以时间为参照进行分析。频域分析#xff1a;相当于上帝视角一样#xff0c;看事物层次更高#xff0c;时域的运动在频域来看就是静止的。eg#xff1a;投球——时域分析#xff1a;第1分钟投了3分#xff0c;第2分钟投…1、傅里叶变换a、傅里叶变换原理时域分析以时间为参照进行分析。频域分析相当于上帝视角一样看事物层次更高时域的运动在频域来看就是静止的。eg投球——时域分析第1分钟投了3分第2分钟投了2分第3分钟投了1分......第n分钟投了2分。频域分析每隔一分钟投一个3分球每隔一分钟投一个2分球。关于傅里叶变换详细描述可以参考知乎上的这篇文章 文章链接https://zhuanlan.zhihu.com/p/19763358傅里叶变换的作用 低频——变化缓慢的灰度分量 高频——变化剧烈的灰度分量滤波 低通滤波器——只保留低频会使得图像模糊 高通滤波器——只保留高频会使得图像细节增强频域转换代码import cv2
import numpy as np
import matplotlib.pyplot as plt
imgcv2.imread(lena.jpg,0)
img_float32np.float32(img)
dftcv2.dft(img_float32,flagscv2.DFT_COMPLEX_OUTPUT)#图像转为频域,输入图像需要先转化为float32格式
dft_shiftnp.fft.fftshift(dft)
#得到灰度图表现的形式
magnitude_spectrum20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1])
plt.subplot(121)
plt.imshow(img,cmapgray)
plt.title(input image)
plt.xticks([])
plt.yticks([])
plt.subplot(122)
plt.imshow(magnitude_spectrum,cmapgray)
plt.title(magnitude spectrum)
plt.xticks()
plt.yticks()
plt.show()b、低通与高通滤波低通滤波代码import cv2
import numpy as np
import matplotlib.pyplot as plt
imgcv2.imread(lena.jpg,0)
img_float32np.float32(img)
dftcv2.dft(img_float32,flagscv2.DFT_COMPLEX_OUTPUT)
dft_shiftnp.fft.fftshift(dft)
rows,colsimg.shape
crow,ccolint(rows/2),int(cols/2) #中心位置
masknp.zeros((rows,cols,2),np.uint8)#创建掩膜,进行低通滤波
mask[crow-30:crow30,ccol-30:ccol30]1
fshiftdshift*mask
f_isiftnp.fft.fftshift(fshift)
img_backcv2.idft(f_ishift)#将图像转回去和dft为互逆运算
img_backcv2.magnitude(img_back[:,:,0],img_back[:,:,1])
plt.subplot(121)
plt.imshow(img,cmapgray)
plt.title(input image)
plt.xticks([])
plt.yticks([])
plt.subplot(122)
plt.imshow(img_back,cmapgray)
plt.title(result1)
plt.xticks()
plt.yticks()
plt.show()高通滤波代码:import cv2
import numpy as np
import matplotlib.pyplot as plt
imgcv2.imread(lena.jpg,0)
img_float32np.float32(img)
dftcv2.dft(img_float32,flagscv2.DFT_COMPLEX_OUTPUT)
dft_shiftnp.fft.fftshift(dft)
rows,colsimg.shape
crow,ccolint(rows/2),int(cols/2) #中心位置
masknp.ones((rows,cols,2),np.uint8)#创建掩膜,进行低通滤波
mask[crow-30:crow30,ccol-30:ccol30]0
fshiftdshift*mask
f_isiftnp.fft.fftshift(fshift)
img_backcv2.idft(f_ishift)#将图像转回去和dft为互逆运算
img_backcv2.magnitude(img_back[:,:,0],img_back[:,:,1])
plt.subplot(121)
plt.imshow(img,cmapgray)
plt.title(input image)
plt.xticks([])
plt.yticks([])
plt.subplot(122)
plt.imshow(img_back,cmapgray)
plt.title(result1)
plt.xticks()
plt.yticks()
plt.show()2、直方图图像像素点数值图直方图直方图横坐标为像素值从左到右即从0到255纵坐标为每个像素值在图像中出现的次数。单通道直方图代码import matplotlib.pyplot as plt
import cv2
imgcv2.imread(cat.jpg,0)#0代表灰度图
histcv2.calcHist([img],[0],None,[256],[0,256])#参数从左到右依次为图像、通道012,BGR、掩膜图像、histsizeBIN数量、像素值范围
hist.shape
plt.hist(img.ravel(),256)
plt.show()三个通道直方图代码imgcv2.imread(cat.jpg)
color[b,g,r]
for i col in enumerate(color):histrcv2.calcHist([img],[i],None,[256],[0,256])plt.plot(histr,colorcol)plt.xlim([0,256])plt..show()3、掩膜图像创建掩膜代码import numpy as np
masknp.zeros(img.shape[:2],np.uint8)
mask[100:300,100:400]255
cv2.imshow(mask,mask)
cv2.waitKey()
cv2.destroyAllWindows()掩膜操作:mask_imgcv2.bitwise_and(img,img,maskmask)#与操作
cv2.imshow(mask_img,mask_img)
cv2.waitKey()
cv2.destroyAllWindows()计算掩膜操作的直方图:hist_maskcv2.calcHist([img],[0],mask,[256],[0,256])
plt.plot(hist_mask)
plt.xlim([0,256])
plt.show()4、直方图均衡化a、均衡化原理及计算方法均衡化让原本分布不均衡的直方图在坐标轴上变得更为均衡如下图所示。原图像及直方图均衡化后的图像及直方图均衡化计算过程步骤1原图像灰度值统计步骤2每个灰度的个数、概率及累积概率累积概率加上前面几个像素点的概率如0.18750.250.4375步骤3累积概率*灰度值取值范围0.25*255-0步骤4均衡化后的灰度值统计b、均衡化代码及效果均衡化前的直方图展示imgcv2.imshow(cat.jpg)
plt.hist(img.ravel(),256)
plt.show()均衡化代码equcv2.equalizeHist(img)
plt.hist(img.ravel(),256)
plt.show()自适应均衡化:clahecv2.createCLAHE(clipLimit2.0,tileGridSize(8,8))
res_claheclahe.apply(img)
resnp.hstack((img,equ,res_clahe))
cv2.imshow(res,res)
cv2.waitKey()
cv2.destroyAllWindows()