欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 7-直方图与傅里叶变换

7-直方图与傅里叶变换

2025/2/7 3:25:27 来源:https://blog.csdn.net/weixin_63091390/article/details/145428747  浏览:    关键词:7-直方图与傅里叶变换

文章目录

  • 7.直方图与傅里叶变换
  • (1)直方图定义
  • (2)均衡化原理
  • (3)均衡化效果
  • (4)傅里叶概述
  • (5)频域变换结果
  • (6)低通与高通滤波


7.直方图与傅里叶变换

(1)直方图定义

import cv2 #opencv读取的格式是BGR
import numpy as np
import matplotlib.pyplot as plt#Matplotlib是RGB
%matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()

直方图
在这里插入图片描述

cv2.calcHist(images,channels,mask,histSize,ranges)

  • images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]
  • channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的参数可以是 [0][1][2] 它们分别对应着 BGR。
  • mask: 掩模图像。统整幅图像的直方图就把它为 None。但是如 果你想统图像某一分的直方图的你就制作一个掩模图像并 使用它。
  • histSize:BIN 的数目。也应用中括号括来。它定义了直方图的分辨率,即在指定的像素值范围内,将像素值划分为多少个区间(桶)。
  • ranges: 像素值范围常为 [0,256]
    ,ranges 参数定义的是一个闭区间 [min, max),即包括最小值 min,但不包括最大值 max
img = cv2.imread('cat.jpg',0) #0表示灰度图
hist = cv2.calcHist([img],[0],None,[256],[0,256])
hist.shape #有 256 行,每行有一个值,表示该像素值的像素数量。
(256, 1)
  • plt.hist 是 Matplotlib 库中用于绘制直方图的函数。
  • img.ravel() 将二维数组 img 展平为一个一维数组。这个一维数组包含了图像中所有像素的值,每个值的范围是 0 到 255。
plt.hist(img.ravel(),256) #第一个参数是数据数组,第二个参数是直方图的桶(bin)数目
#plt.axis('off')
plt.show()

在这里插入图片描述


三个颜色通道的直方图统计结果

img = cv2.imread('cat.jpg') 
color = ('b','g','r')
for i,col in enumerate(color): histr = cv2.calcHist([img],[i],None,[256],[0,256]) plt.plot(histr,color = col) plt.xlim([0,256]) 

在这里插入图片描述



(2)均衡化原理


mask操作

#创建mask
mask = np.zeros(img.shape[:2],np.uint8)
mask[100:300,100:400] = 255
cv_show(mask,'mask')
img = cv2.imread

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com