如何在OpenCV Python中绘制图像的不同颜色的直方图?

如何在OpenCV Python中绘制图像的不同颜色的直方图?

为了计算OpenCV中的直方图,我们使用 cv2.calcHist() 函数。在本教程中,我们将演示如何为输入图像的不同颜色(蓝色、绿色和红色)计算直方图。

要计算和绘制图像的不同颜色的直方图,可以按照以下步骤进行操作 –

步骤

导入所需的库 OpenCVmatplotlib 。确保您已经安装了它们。

import cv2
import matplotlib.pyplot as plt

使用 cv2.imread() 方法读取图像。图像的宽度和高度必须相同。

img1 = cv2.imread('birds.jpg')

计算不同颜色蓝色、绿色和红色的输入图像的直方图。

hist1 = cv2.calcHist([img],[0],None,[256],[0,256]) #blue
hist2 = cv2.calcHist([img],[1],None,[256],[0,256]) # green
hist3 = cv2.calcHist([img],[2],None,[256],[0,256]) # red

绘制输入图像不同颜色的直方图。

plt.subplot(3,1,1), plt.plot(hist1, color='b')
plt.subplot(3,1,2), plt.plot(hist2, color='g')
plt.subplot(3,1,3), plt.plot(hist2, color='r')

输入图像

我们将使用以下图像作为下面示例的输入文件。

如何在OpenCV Python中绘制图像的不同颜色的直方图?

示例1

在此示例中,我们计算三种不同颜色的蓝色、绿色和红色的直方图,并在三个子图中绘制所有三个直方图。

#导入所需的库
import cv2
from matplotlib import pyplot as plt

#读取输入图像
img = cv2.imread('birds.jpg')

#计算蓝色,绿色和红色通道的直方图
hist1 = cv2.calcHist([img],[0],None,[256],[0,256]) #blue
hist2 = cv2.calcHist([img],[1],None,[256],[0,256]) # green
hist3 = cv2.calcHist([img],[2],None,[256],[0,256]) # red

#绘制直方图
plt.subplot(3,1,1), plt.plot(hist1, color='b')
plt.subplot(3,1,2), plt.plot(hist2, color='g')
plt.subplot(3,1,3), plt.plot(hist2, color='r')
plt.show()

输出

当你运行这个Python代码时,它会产生以下输出−

如何在OpenCV Python中绘制图像的不同颜色的直方图?

例子2

在这个例子中,我们计算三种不同颜色蓝色、绿色和红色的直方图,并在一个图中绘制所有三个直方图。

# 导入所需要的库
import cv2
from matplotlib import pyplot as plt

# 读取输入图像
img = cv2.imread('birds.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])
plt.show()

当你运行这个代码时,它会产生以下输出窗口−

如何在OpenCV Python中绘制图像的不同颜色的直方图?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV