当前位置: 首页 > 网络应用技术

OPENCV直方图处理(Python)

时间:2023-03-09 12:32:54 网络应用技术

  直方图处理直方图从图像的内部灰度的角度表示图像

  可以从直方图的角度处理图像,这可以实现增强图像显示效果的目的。

  直方图直方图的含义是图像中灰色值的统计特征与图像的灰色值之间的函数。

  从直方图的图形观察,水平坐标是图像中像素点的灰度水平,垂直坐标是具有灰度级别(像素值)的像素的数量。

  绘制直方图时,将灰度视为X轴,并且灰度的次数为y轴处理

  左侧的直线图和右平方图称为直方图的直方图

  在实际处理中,图像直方图的X轴间隔通常为[0,255],对应于8个位置的256灰度;本质

  抗-yihua直方图:在背景图中,X轴仍然表示灰度;Y轴不再表示灰度的时间,而是灰度的频率。

  灰度的频率=灰色水平出现的时间/总像素的数量/总像素

  在对帐图中,每个灰度的频率的总和为1。

  背景图与直方图的外观一致,但是Y轴的标签不同。

  在OpenCV的官方网站上,要注意的三个概念:昏暗,垃圾箱,范围

  在Python模块Matplotlib.plot的模块中绘制Hist()函数可以轻松绘制直方图,该直方图通常使用此函数直接绘制直方图。

  此外,OPENCV中的CV2.Calchist()函数可以计算统计直方图,并且您还可以基于此绘制图像的直方图。

  使用numpy绘制具有类似于MATLAB绘图方法的框架的直方图模块matplotlib.pyplot。您可以使用matplotlib.pyplot.hist()函数绘制直方图。

  该功能的作用是根据数据源和灰色级别分组绘制直方图。

  它的基本语法格式是:

  函数ravel()的函数是将两个维数阵列减少到一个维数阵列中。

  例如:数组

  使用函数ravel()处理:

  使用Hist()函数绘制图像的直方图

  使用函数hist()将图像的灰度划分为16组,并绘制图像的直方图。

  灰度分为16组,灰度分为16个子集,相应的垃圾箱值为16。

  使用OPENCV绘制直方图OPENCV提供函数CV2.Calchist()来计算图像的统计直方图,该直方图可以计算每个灰色级别的像素数量。

  使用matplotlib.pyplot模块中的plot()函数,可以将函数cv2.calchist()的统计结果绘制到直方图中。

  plot()函数使用

  使用matplotlib.pyplot模块中的plot()函数,可以将函数cv2.calchist()的返回值绘制为图像直方图。

  绘制统计直方图:

  使用函数绘图()将函数cv2.calchist()的返回值绘制为直方图。

  使用函数绘图()和函数cv2.calchist()在一个窗口中绘制颜色图像的每个通道的直方图。

  使用掩码在函数CV2.Calchist()中绘制直方图。参数蒙版用于识别是否使用了掩码图像。

  当使用掩码图像获得直方图时,仅由掩码参数蒙版指定的指定区域的直方图。

  如果直方图平衡具有所有可能的灰色水平,并且像素值的灰色分布均匀,则该图像具有高对比度和可变的灰色音调,丰富的灰色水平和较大的覆盖范围不可行

  在外观上,这样的图像具有更丰富的颜色,不会太黑或明亮。

  直方图均衡的主要目的是将原始图像的灰度均匀地映射到整个灰度范围,以获得灰度的均匀图像。这种平衡不仅实现了灰度统计的概率平衡,而且还达到人类视觉系统(HVS)的视觉平衡。

  直方图均衡原理的右恢复算法主要包括两个步骤:

  在此基础上,使用人眼视觉实现直方图平衡的目的。

  根据累积直方图,原始的灰度空间被转换。

  它可以在原始范围内平衡到灰度水平,也可以在更宽的灰度范围内平衡灰度。

  在原始范围内实施平衡

  当前灰度的累积概率乘以当前灰度的最大值以获得新的灰度,并用作平衡结果。

  实施平衡

  当前灰度的累积概率乘以更宽的灰度范围的最大值,并获得了新的灰度水平,并获得了平衡度的结果。

  通过以下两个步骤,直方图可以达到平衡效果。

  平衡图使图像颜色更加平衡,外观更清晰,并且还使图像更易于处理。它被广泛用于医疗图像处理,车牌识别和面部识别的领域。

  直方图平衡处理OPENCV使用函数CV2.EqualizeHist()实现直方图平衡。

  此函数的语法格式是:

  示例:使用函数CV2.EqualizeHist()实现直方图平衡

  语句“ plt. -figure(“原始图像恢复”)用于构造一个用于构造“原始图像配方”的新窗口。

  平衡性是指统计概率和HVS平衡的全面考虑。

  Pyplot模块引入Matplotlib.pyplot模块,以提供类似于MATLAB图形方法的框架,该框架可以使用该函数轻松绘制图形。

  子图函数模块matplotlib.pyplot提供了一个函数matplotlib.plot.subplot(),以将sub -window对象添加到当前窗口中。此函数的语法格式为:

  序列号以“ 1”而不是“ 0”开头。

  如果所有参数均小于10,则可以忽略彼此之间的逗号并直接编写三个数字。例如,子图(2、3、4)可以直接表示为子图(234)。

  Imhow函数模块matplotlib.pyplot提供了一个函数matplotlib.pyplot.imshow()来显示图像。

  它的语法格式是:

  使用函数matplotlib.pyplot.imshow()显示颜色图像

  使用函数matplotlib.pyplot.imshow()显示灰色图像。

  尝试使用不同的表格显示灰度图像

  仅使用灰色图像作为参数,并将颜色空间参数值设置为“ cmap = plt.cm.gray”,灰色图像正常显示。

  使用函数matplotlib.pyplot.imshow()以不同的参数显示灰色图像。

  颜色空间参数cmap“ plt.cm.gray_r”和“ gray_r”的参数值是英语“反向”的缩写,这意味着逆转。

  原始:https://juejin.cn/post/7098170672110632967