**
OpenCV彩色图像直方图
**
绘制彩色图像直方图就是将一张彩色图像的R,G,B三种颜色值分别提取出来,绘制成直方图。
原图片如下:
一、彩色图像颜色分离
利用OpenCV获取彩色图像,利用split方法区分三原色,具体代码如下:
import cv2
import numpy as np
img = cv2.imread('image0.jpg', 1)
channels = cv2.split(img)
图像颜色分离后也就获得了B,G,R三个颜色通道,接下来就可以调用绘制直方图的方法了。
二、计算并绘制直方图
将获取的三个通道分别作为参数传入绘制直方图方法中,代码如下:
for i in range(0, 3):
imageHist(channels[i], i + 31)
当i值分别为0,1,2的时候,对应的就是B,G,R三个颜色通道。将i+31作为参数为了在方法中可以判断出传入的是哪个通道。
def imageHist(img, type):
# color = (255, 255, 255)
if type == 31:
color = (255, 0, 0)
windowName = 'B Hist'