OpenCV(七)之直方图与傅里叶变换

opencv 傅里叶变换(python) 图像处理一般分为空间域处理和频率域处理。空间域处理是直接对图像内的像素进行处理。空间域处理主要划分为灰度变换和空间滤波两种形式。频率域处理是先将图像变换到频率域,然后在频率域对图像进行处理,最后再通过反变换将图像从频率域变换到空间域。时间差,在傅里叶变换里就是相位。相位表述的是与时间差相关的信息。在图像处理过程中,傅里叶变换就是将图像分解为正弦分量和余弦分量两部分,即将图像从空间域转换到频域。数字图像经过傅里叶变换后,得到的频域值是复数。因此,显示傅里叶变换的结果需要使用实数图像(real image)加虚 阅读详情

Hist & Fourier transform系列


Hist & Fourier transform-直方图

直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。


calcHist函数
	function
	计算一组数组的直方图。
	函数cv :: calcHist计算一个或多个数组的直方图,用于递增直方图bin的元组的元素是从相同位置的相应输入数组中获取的。 
	下面的示例显示了如何计算彩色图像的2D色相饱和度直方图:

calcHist

	参数
	
	images	源数组。它们都应具有相同的深度,CV_8U,CV_16U或CV_32F,并且大小相同。它们中的每一个都可以具有任意数量的通道。
	nimages	源图像数量。
	channels	用于计算直方图的dims通道列表。通道 可以分别统计BGR通道 0,1,2
	第一个数组通道的编号从0到图像[0] .channels- 1,第二个数组通道从图像[0] .channels到图像[0] .channels+图像[1]计数。 
	channels- 1,依此类推。
	mask	可选掩模。如果矩阵不为空,则它必须是与images [i]大小相同的8位数组。非零掩码元素标记直方图中计数的数组元素。
	hist	输出直方图,是一个密集或稀疏的dims -dimensional数组。
	dims	直方图维度必须为正且不大于CV_MAX_DIMS(在当前OpenCV版本中等于32)。
	histSize	每个维度中的直方图大小数组。直方图X轴大小 假如0-256 也可以自定义为 0-10 10-20 .... 246-256 即步长
	ranges		像素范围
	uniform	指示直方图是否均匀的标志(见上文)。
	accumulate	积累标签。如果已设置,则直方图在分配时不会在开头清除。此功能使您可以从多组数组计算单个直方图,或者及时更新直方图。

	function
	def equalizeHist(src, dst=None):
	均衡灰度图像的直方图。
	该函数使用以下算法均衡输入图像的直方图:
	1.计算src的直方图H。
	2.标准化直方图,使直方图区间的总和为255。
	3.计算直方图的积分:

在这里插入图片描述

	4.使用H'作为查找表变换图像:???(x,y)= H'(???(x,y))
	该算法使亮度归一化并增加图像的对比度。

	参数
	src	源8位单通道图像。
	dst	与src具有相同大小和类型的目标图像。

	function
	def bitwise_and(src1, src2, dst=None, mask=None):
	计算两个数组或数组和标量的每元素逐位连接。
	该函数计算每元素按位逻辑连接:
	当src1和src2具有相同大小时,两个数组:

a
当src2由Scalar构造或具有与src1.channels()
相同数量的元素时,数组和标量:
a
src1是从Scalar构造的,或者与src2.channels()
具有相同数量的元素时的标量和数组:
c
在浮点阵列的情况下,它们的机器特定位表示(通常符合IEEE754)用于操作。
在多通道阵列的情况下,每个通道都是独立处理的。
在上面的第二和第三种情况中,标量首先转换为数组类型。

	参数
	src1  第一个源数组或标量。
	src2  第二个源数组或标量。
	dst  与输入数组具有相同大小和类型的目标arrayb。
	mask  可选操作掩码,8位单通道数组,指定要更改的目标数组的元素。

	function
	def createCLAHE(clipLimit=None, tileGridSize=None):
# 读取灰度值图像
img = cv2.imread('tiger.png',0)
cv_show('img',img)
#在calcHist函数中,参数需要加上 [参数]
hist = cv2.calcHist([img],[0],None,[256],[0,256])
print(hist.shape)
#显示
plt.hist(img.ravel(),256)
plt.show()

Systemout:(256, 1)

tiger

Hist

#分成三个通道统计
img_bgr = cv2.imread('cat.jpg')
color = ['b','g','r']
#循环输出
for i,col in enumerate(color):
    histr = cv2.calcHist([img_bgr],[i],None,[256],[0,256])
    plt.plot(histr,color=col)
plt.show()

hist_rgb

#mask操作
#创建mask
mask = np.zeros(img.shape[:2],np.uint8)
mask[100:300,100:400]=255
cv_show('mask',mask)
#与操作
mask_img = cv2.bitwise_and(img,img,mask=mask)
cv_show("mask_img",mask_img)
hist_full = cv2.calcHist([img],[0],None,[256],[0,256])
hist_mask = cv2.calcHist([img],[0],mask,[256],[0,256])
plt.subplot(221)
plt.imshow(img,'gray')
plt.subplot(222)
plt.imshow(mask,'gray')
plt.subplot(223)
plt.imshow(mask_img,'gray')
plt.subplot(224)
plt.plot(hist_full)
plt.plot(hist_mask)
plt.show()

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


#直方图均衡化
hist = cv2.calcHist([img],[0],None,[256],[0,256])
plt.subplot(121)
plt.plot(hist)
plt.hist(img.ravel(),256)
#用equalizeHist均衡化
equ = cv2.equalizeHist(img)
plt.subplot(122)
plt.hist(equ.ravel(),256)
plt.show()
res = np.hstack((img,equ))
cv_show('res',res)

hist
hist2hist

# 自适应直方图均衡化
clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
res_clahe = clahe.apply(img)
res = np.hstack((img,equ,res_clahe))
cv_show('res',res)

Hist2hist2hist


分析:

直方图均衡化能够调节图像的整体对比度,能够使得整体呈像较为清晰,但是也有可能会使得局部太过明亮,丢失细节,所以,使用自适应的直方图均衡化能够很好完成需要。


Hist & Fourier transform-傅里叶变换

知乎参考文档.

傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。许多波形可作为信号的成分,比如正弦波、方波、锯齿波等,傅立叶变换用正弦波作为信号的成分。

公式:

fourier
在图像处理中的应用:

  • 傅里叶变换的作用:
    高频:变化剧烈的灰度分量,例如边界
    低频:变化缓慢的灰度分量,例如平缓的大海

  • 滤波:
    低通滤波器:只保留低频,会使得图像模糊
    高通滤波器:只保留高频,会使得图像细节增强

openCV中:

  • 在openCV中主要就是cv2.dft()和cv2.idft() 输入图像需要先转换成np.float32格式
  • 得到的结果中频率为0的部分会在左上角,通常要转换到中心位置,可以通过shift变换来实现
  • cv2.dft()返回的结果是双通道的(实部,虚部),通常还需要转换成图像格式才能显示(0,255)

	function
	def dft(src, dst=None, flags=None, nonzeroRows=None):
	
	参数
	src  源数组可能是实数或复数。
	dst	目标数组的大小和类型取决于标志。
	flags	转换标志表示以下值的组合:
	DFT_INVERSE执行逆1D或2D变换而不是默认的正向变换。
	DFT_SCALE缩放结果:除以数组元素的数量。通常,它与DFT_INVERSE结合使用。
	DFT_ROWS对输入矩阵的每一行执行正向或反向变换。此标志使您可以同时转换多个向量,并可 用于减少开销(有时比处理本身大几倍)以执行3D和更高维度的转换等。
	DFT_COMPLEX_OUTPUT执行1D或2D实数组的正向变换。结果虽然是一个复杂的数组,但具有复共轭对称性(CCS,详见下面的函数说明)。这样的数组可以打包成与输入大小相同的实数数组,这是最快的选项,也就是默认情况下该功能的作用。但是,您可能希望获得完整的复杂阵列(用于更简单的频谱分析,等等)。传递该标志以使该函数能够生成全尺寸复杂输出数组。
	DFT_REAL_OUTPUT执行1D或2D复杂阵列的逆变换。结果通常是相同大小的复杂数组。但是,如果源阵列具有共轭复数对称性(例如,它是使用DFT_COMPLEX_OUTPUT标志进行正向变换的结果),则输出是实数组。虽然函数本身不检查输入是否对称,但您可以传递标志然后函数将采用对称并生成实际输出数组。注意,当输入被打包到实数组中并执行逆变换时,该函数将输入视为打包的复共轭对称数组。因此,输出也将是一个真正的数组。
	nonzeroRows  - 当参数不为零时,该函数假定只有输入数组的第一个非零行(DFT_INVERSE未设置)或仅输出数组的第一个非零行(设置为DFT_INVERSE)包含非零。因此,该函数可以更有效地处理其余行并节省一些时间。该技术对于使用DFT计算阵列互相关或卷积非常有用。

	function
	np.fft.fftshift(img)#将图像中的低频部分移动到图像的中心
	cv2.magnitude(img)#将sqrt(x^2 + y^2) 计算矩阵维度的平方根
	np.fft.ifftshift(img)# 进图像的低频和高频部分移动到图像原来的位置
	cv2.idft(img) # 进行傅里叶的逆变化

代码实现:

#转换成float32的图像
img_float32 = np.float32(img)
#傅里叶变换
dft = cv2.dft(img_float32,flags=cv2.DFT_COMPLEX_OUTPUT)
#将低频值转换到中心点
dft_shift = np.fft.fftshift(dft)
#得到灰度图能显示的形式,用cv2自带的函数将dft后得到的结果,转换成灰度图,但数值很小,仍需要做一些计算
magnitude_spectrum =20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))

plt.subplot(121)
plt.imshow(img,cmap='gray')
plt.title("INPUT Image")
plt.xticks([])
plt.yticks([])

plt.subplot(122)
plt.imshow(magnitude_spectrum,cmap='gray')
plt.title("magnitude_spectrum")
plt.xticks([])
plt.yticks([])

plt.show()

fourier


低通滤波器

#低通滤波器
#读取灰度值图像
img = cv2.imread('tiger.png',0)
#转换成float32的图像
img_float32 = np.float32(img)
#进行傅里叶变换
dft = cv2.dft(img_float32,flags=cv2.DFT_COMPLEX_OUTPUT)
#将低频值转换到中心点
dft_shift = np.fft.fftshift(dft)
#获取中心坐标
rows,cols = img.shape
crow,ccol = int(rows/2),int(cols/2)
#低通滤波,做一个掩模,为什么channels为2?
mask = np.zeros((rows,cols,2),np.uint8)
mask[crow-30:crow+30,ccol-30:ccol+30]=1

#IDFT,逆运算
idft_shift = dft_shift*mask
idft_shift = np.fft.ifftshift(idft_shift)
img_back = cv2.idft(idft_shift)
img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1])

plt.subplot(121)
plt.imshow(img,cmap='gray')
plt.title("INPUT Image")
plt.xticks([])
plt.yticks([])

plt.subplot(122)
plt.imshow(img_back,cmap='gray')
plt.title("RESULT")
plt.xticks([])
plt.yticks([])

plt.show()

在这里插入图片描述


高通滤波器

#高通滤波器
#读取灰度值图像
img = cv2.imread('tiger.png',0)
#转换成float32的图像
img_float32 = np.float32(img)
#进行傅里叶变换
dft = cv2.dft(img_float32,flags=cv2.DFT_COMPLEX_OUTPUT)
#将低频值转换到中心点
dft_shift = np.fft.fftshift(dft)
#获取中心坐标
rows,cols = img.shape
crow,ccol = int(rows/2),int(cols/2)
#高通滤波,做一个掩模,为什么channels为2?
mask = np.ones((rows,cols,2),np.uint8)
mask[crow-30:crow+30,ccol-30:ccol+30]=0

#IDFT
idft_shift = dft_shift*mask
idft_shift = np.fft.ifftshift(idft_shift)
img_back = cv2.idft(idft_shift)
img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1])

plt.subplot(121)
plt.imshow(img,cmap='gray')
plt.title("INPUT Image")
plt.xticks([])
plt.yticks([])

plt.subplot(122)
plt.imshow(img_back,cmap='gray')
plt.title("RESULT")
plt.xticks([])
plt.yticks([])

plt.show()

在这里插入图片描述


在频域中的层次分明,效率快,逻辑清晰。


END

7-直方图与傅里叶变换 直方图均衡化/图像傅里叶变换 阅读详情

相关推荐

opencv-python图像处理 ---直方图与傅里叶变换、逆变换

Python代码实现

勤劳鸟儿 2352

【OpenCV学习笔记】之直方图(Histogram)

  一、直方图概述(Histogram Overview)         在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,他的两个坐标分别是统计样本(图像、视频帧)和样本的某种属性(亮度,像素值,梯度,方向,色彩等等任何特征)。         也可以这么理解,直方图是对数据的统计,并把统计值显示到事先设定好的bin(矩形条)中,bin中的数值是从数据中计算出的特征的...

zhu_hongji的博客 7万+

OpenCV直方图与傅里叶变换实战技巧

直方图和傅里叶变换是数字图像处理的两大基础工具。直方图通过统计像素分布反映图像特征,常用于对比度增强和颜色分析;傅里叶变换则将图像转换到频域,实现滤波、去噪等操作。在工程实践中,结合OpenCV的calcHist和dft函数,开发者可以高效实现图像增强、特征提取等核心功能。特别是在工业检测和医学影像领域,通过CLAHE自适应均衡化和频域混合技术,能显著提升图像质量。本文通过实战代码演示了直方图规定化、频域滤波等进阶技巧,帮助开发者掌握计算机视觉中的关键技术。

weixin_30681121的博客 435

opencv笔记(7)——直方图与傅里叶变换

直方图与傅里叶变换 文章目录直方图与傅里叶变换一、直方图二、三、常用函数 一、直方图 import cv2 import matplotlib.pyplot as plt import numpy as np %matplotlib inline #专有魔法指令,即时显示 def cv_show(name,img): cv2.imshow(name,img) cv2.waitKey(0) cv2.destoryAllWindows() img = cv2.imread('cat.jpg', 0)

清园暖歌的博客 537

python opencv学习(九)直方图与傅里叶变换

直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images:原图像格式为uint8或float32,当传入函数时应用括号 [] 同一样括住表示,例如[img] channels:同样用[]括,它会告诉函数,我们统幅图像的直方图。如果传入图像是灰度图,它的值就是 [0] 如果是彩色图像的传入参数可以是 [0] [1] ...

lovetobelove的博客 739

方波的离散傅里叶变换谱分析

方波的离散傅里叶变换谱分析,利用DTFT对方波进行傅里叶谱分析,并且设计恰当的数字滤波器,过滤一级谐波和二级谐波,很适合新人学习!!

【Python_Opencv图像处理框架】直方图与傅里叶变换

直方图是可以对整幅图的灰度分布进行整体了解的图示,通过直方图我们可以对图像的对比度、亮度和灰度分布等有一个直观了解。在数字图像处理中,直方图可以用来了解图像中像素的分布情况。直方图显示了图像中每个灰度级别的像素数目,使我们可以对图像的对比度、亮度和灰度分布等有一个直观了解。直方图通常用来进行图像增强和色彩校正。例如,如果我们发现图像的直方图集中在低灰度级别处,可以通过调整图像的亮度和对比度来增强图像。同样地,如果图像的直方图峰值偏移,可以通过色彩校正来调整图像的色彩平衡。

m0_73222051的博客 948

计算方波信号的傅里叶变换

计算方波信号的傅里叶变换,方波宽度自定义(提示:可用单位阶跃信号表示方波信号)

图像处理基础操作三(图像直方图、傅里叶变换)

一、图像直方图 1、直方图 灰度直方图(histogram)是灰度级的函数,描述的是图像中每种灰度级像素的个数,反映图像中每种灰度出现的频率。横坐标是灰度级,纵坐标是灰度级出现的频率。 直方图是对图像的中的像素点的值进行统计,一般情况下直方图都是灰度图像,直方图x轴是灰度值(一般0~255),y轴就是图像中每一个灰度级对应的像素点的个数,即横坐标表示图像中各个像素点的灰度级,纵坐标表示具有该灰度级的像素个数。 matplotlib绘制直方图 #encoding:utf-8 import cv2

分享实践与思考 3969

Springboot项目中使用邮箱验证码注册登录的代码实现

本文介绍了在Spring Boot应用中实现邮箱验证码注册和登录功能的完整方案。文章首先概述了三种用户认证方式(邮箱验证码注册/登录和传统密码登录),然后详细说明了实现所需的技术栈(Spring Boot、Spring Security、JWT等)。重点阐述了邮件服务配置、验证码生成与存储的核心实现,包括QQ邮箱授权码获取、Thymeleaf邮件模板处理以及验证码缓存管理。最后展示了发送验证码和用户注册的API实现,为开发者提供了完整的参考方案。该方案兼顾安全性和用户体验,适合现代Web应用的用户认证需求。

BXCQ_xuan的技术专栏 | 实战干货·实践教程·学习笔记 1341

CubeMX实战:ETH+LWIP+FreeRTOS网络工程从零搭建与AC6编译优化

本文手把手教你使用STM32CubeMX从零搭建集成以太网(ETH)、LWIP协议栈和FreeRTOS的嵌入式网络工程。文章详细解析了外设配置、协议栈调优、任务规划等关键步骤,并重点分享了如何解决ARM Compiler 6(AC6)的兼容性问题,实现编译速度与稳定性的双重提升,助你快速构建稳定的网络应用原型。

n2o3p4的博客 410

计算机视觉实战(八)直方图与傅里叶变换

1

小小何先生的学习之旅 1029

基于FPGA的函数信号发生器设计

设计采用波形查找表和相位累加器的方法实现DDS,查找表的数据位宽为8位,采样点数为4096。波形产生范围是100Hz-20MHz,最小频率间隔为1Hz,用8个数码管显示频率,可产生正弦波、方波、三角波,波形用两个led显示,select信号控制,全灭为正弦波,一亮一灭为方波,全亮为锯齿波。为了使频率和相位便于调节,用3个拨码开关控制步进,用8个led显示状态。

FPGA入门到跑路 5636

openCV (七) 直方图和傅里叶变换 学习回顾记录

文章目录一、直方图(1) 图像均衡化二、傅里叶变换(1)低通滤波(2)高通滤波 一、直方图 语法: cv2.calcHist(images,channels,mask,histSize,ranges) - images:原图像格式为uint8或float32,当传入函数时需要用[]括起来使用; - channels: 同样用中括号括起来,告诉程序统计图像的直方图。如果是灰度图,就为[0],如果是彩色图像,传入参数为[0][1],[2]对应着BGR - mask:掩模图像。如果要统计整幅图想的直方图,为Non

深度菜鸡-达闻西的博客 397

EMQX 结合MySQL实现精细化ACL权限管理实战

本文详细介绍了如何通过EMQX结合MySQL实现精细化的ACL权限管理,提升物联网设备接入和消息传输的安全性。内容包括环境准备、基础配置、权限规则设计技巧以及高级应用与性能优化方案,帮助开发者快速掌握动态生效、便于管理的权限控制方法。

weixin_28683689的博客 198

一篇文章将三极管讲透:三极管从原理到应用,从参数到特性,从入门到精通

晶体三极管(Transistor)是一种半导体电子器件,也是电子工程中最基本的元件之一。它有三个区域,分别是P型半导体,N型半导体和P型半导体,从而形成PNP型晶体三极管或者NPN型晶体三极管。

学习帮的博客 9万+

Opencv 直方图

Opencv笔记

“只要有信念,就一定会成功” 1700

超越界面设计:GUI Guider与LVGL在STM32F103上的系统集成与架构思考

本文探讨了GUI Guider与LVGL在STM32F103微控制器上的系统集成与架构设计,重点分析了工程模块化组织、内存管理优化、硬件驱动接口设计以及FreeRTOS多任务集成。针对STM32F103ZET6的资源限制,提供了实用的移植策略和性能优化方案,帮助开发者构建高效、可维护的嵌入式GUI系统。

j2k3l4的博客 924

第六章 OpenCV篇—傅里叶变换与直方图

此章节主要讲解:直方图定义、均衡化、傅里叶变换

2403_88453964的博客 1005

[特殊字符]用Python爬取中国裁判文书网案例信息:从爬虫到数据可视化全流程实战(附代码)

✅ 分析裁判文书网的网页结构;✅ 自动化爬取案件信息;✅ 解析加密参数并获取数据;✅ 数据可视化图表输出;✅ 模块化构建爬虫系统。

2201_76125261的博客 2825

YOLO26涨点改进 | 全网首发Conv独家改进篇 | CVPR 2025 | 引入GCConv卷积改进YOLO26,含GCC3k2二次创新,能够捕捉更加丰富和复杂的特征信息,助力高效涨点

本文提出了一种基于GCConv模块的YOLO26目标检测模型改进方案。GCConv模块通过多路径结构增强特征学习能力,在训练阶段采用垂直多卷积和水平多路径配置,推理时重参数化为单一3x3卷积,显著提升推理速度而不损失性能。实验表明,该模块在复杂场景和多尺度目标检测任务中表现优异,特别适合资源受限的实时应用场景。文章详细介绍了GCConv的网络结构、核心代码实现、YAML配置文件修改方法,并提供了两种改进方案(GCConv和GCC3k2)的具体配置指导。

Ai缝合怪、助力小伙伴高效发论文 322

【OpenCV-直方图与傅里叶变换】图像的基本变换、傅里叶变换、直方图

我们生活在时间的世界中,早上7:00起来吃早饭,8:00去挤地铁,9:00开始上班。opencv中主要就是cv2.dft()和cv2.idft(),输入图像需要先转换成np.float32 格式。cv2.dft()返回的结果是双通道的(实部,虚部),通常还需要转换成图像格式才能展示(0,255)。得到的结果中频率为0的部分会在左上角,通常要转换到中心位置,可以通过shift变换来实现。高通滤波器:只保留高频,会使得图像细节增强。低频:变化缓慢的灰度分量,例如一片大海。高频:变化剧烈的灰度分量,例如边界。

linjun的博客 1624

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

opencv—8.直方图和傅里叶变换

本文介绍了图像处理中的直方图分析、均衡化和傅里叶变换三大技术。直方图通过统计像素分布反映图像特征,cv2.calcHist()函数可实现多通道分析。均衡化通过调整像素分布改善对比度,包括全局均衡化和自适应均衡化(CLAHE)。傅里叶变换将图像从空间域转换到频率域,通过低通/高通滤波实现模糊或边缘提取,关键函数包括cv2.dft()、np.fft.fftshift()和cv2.magnitude()。这些技术为图像增强和分析提供了有效工具。

xiaobaozi的博客 1399

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Opencv入门到项目实战】(八):图形直方图|傅里叶变换

直方图是一种用于可视化数据分布的图表形式,它显示了数据在各个数值范围内的频率或数量。直方图可以帮助我们了解数据的分布情况、寻找异常值和识别数据模式。在计算机视觉中,直方图也经常用于图像处理和分析。通过统计图像中不同灰度级别的像素数量,可以获得图像的灰度分布,进而进行图像增强、对比度调整、颜色校正等操作。

阿里云专家博主、数据科学领域优质创作者、统计er在读 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

直方图与傅里叶变换

直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像格式为uint8 或 float32,当传入函数是应用中括号【】 channels: 同样用中括号来他会告诉统幅图像的直方图,如果如图像是灰度图他的值就是【0】,如果是彩色图像的传入参数可以是【0】【1】【2】 他们分别对应着BGR mask 淹没图像,统幅图像就把它None.但是如果你想同图像某一部分的你就制作一个淹没图像并使用它 histSize:BIN的数目。也用应用

qq_43729822的博客 480

08 计算机视觉-opencv直方图与傅里叶变换

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

Mind_programmonkey的博客 1027
上一篇: OpenCV(六)之图像轮廓检测
下一篇: Pygame在图片上写汉字
DeepLearningJay
博客等级 码龄7年 3064粉丝 25原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值