import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import cv2

# 读取原图
loopy = cv2.imread(r'C:\Users\RKP\Desktop\Loopy.jpg') 

# 将图像转换为YCbCr颜色空间
ycbcr = cv2.cvtColor(loopy, cv2.COLOR_BGR2YCrCb)

# 提取Y、Cb、Cr三个通道的图像数据
y = ycbcr[:,:,0]
cb = ycbcr[:,:,1]
cr = ycbcr[:,:,2]

# 创建一个包含四个子图的图像
fig, axs = plt.subplots(2, 2, figsize=(10, 10))

# 在每个子图中显示图像和标题
axs[0, 0].imshow(loopy)
axs[0, 0].axis('off')
axs[0, 0].set_title('Loopy')

axs[0, 1].imshow(y, cmap='gray')
axs[0, 1].axis('off')
axs[0, 1].set_title('Y')

axs[1, 0].imshow(cb, cmap='gray')
axs[1, 0].axis('off')
axs[1, 0].set_title('Cb')

axs[1, 1].imshow(cr, cmap='gray')
axs[1, 1].axis('off')
axs[1, 1].set_title('Cr')

plt.tight_layout()  # 调整子图的布局,使标题不重叠
plt.show()

这段代码首先使用 cv2.imread() 函数读取图像。然后,使用 cv2.cvtColor() 函数将图像从BGR颜色空间转换为YCbCr颜色空间。接下来,提取Y、Cb和Cr通道并存储在单独的变量中。

最后使用Matplotlib创建了一个包含四个子图的图形,并使用 imshow() 函数分别显示原始图像以及Y、Cb和Cr通道。cmap='gray' 参数用于以灰度显示Y、Cb和Cr通道。

这段代码展示了如何使用Python和OpenCV轻松提取图像的YCbCr颜色通道,以及如何使用Matplotlib将结果可视化。

Python使用Matplotlib提取和显示图像的YCbCr颜色通道

原文地址: http://www.cveoy.top/t/topic/pfB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录