OpenCV计算机视觉实战(Python)_08-直方图与傅里叶变换

本文介绍了OpenCV中如何利用Python进行直方图和傅里叶变换操作。直方图可以帮助理解图像的亮度、对比度和密度分布,通过cv2.calcHist函数可以计算图像直方图,还可以进行直方图均衡化和自适应直方图均衡化。傅里叶变换则将图像从时域转换到频域,可用于滤波操作。在OpenCV中,cv2.dft和cv2.idft函数用于实现傅里叶变换及其逆变换。
摘要由CSDN通过智能技术生成

什么是histogram?

  • 它可以给出图像的密度分布的总体概念,它的x轴是像素值(0到255)y轴是对应的像素在图像里的数量。
  • 看histogram你可以得到对比度,亮度,密度分布等直观信息。今天的所有图像处理工具都提供了histogram属性,

1. 直方图

直方图

OpenCV代码: cv2.calcHist(image, channels, mask, histSize, ranges)

  • images: 原图像图像格式为uint8或float32,当传入函数时,应用中括号[]来表示,例如[img]
  • channels: 同样用[]来表示,如果图像时灰度图,那么它的值就是[0],如果是彩色图像,那么传入的参数可以是0,1,2,它们分别对应着RGB
    • [0],[1]和[2]来分别计算蓝色,绿色和红色通道的histogram。
  • mask: 掩模图像,如果想统计整幅图中的直方图就把它写为None,如果想统计某一部分的直方图,就制作一个掩模图像并使用它。
  • histSize:BIN的数目,也应该用中括号表示 (需要用户方括号传入),对于全刻度,我们传入[256].
  • ranges:像素值范围常为[0,256] (RANGE,一般来说是[0,256])

I

import cv2 
img = cv2.imread("D:/WeChat.picture/cat.jpg",0)  # 0 表示转为 灰度图
hist = cv2.calcHist([img] , [0] , None ,[256] ,[0,256])          #None 表示 没掩盖 对整个图进行处理
hist.shape   # 结果显示出可能有256 个 取值 , 1 表示 2维 统计出现个数
(256, 1)

# opencv  是 (B G R)的形式 , matplotlib 是 (R B G) 的形式 可用 ravel 转化
import matplotlib.pyplot as plt
plt.hist(img.ravel() , 256)    # plt.hist(img.ravel() , 16) 将其 别分为 16 区间  
plt.show()


                
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值