Bgr转Hsv
import cv2
import matplotlib.pyplot as plt
import numpy as np
def colorSpaceTestEx():
bgr_s = [(0,0,255), (0,255,0), (255,0,0), (0,255,255), (255,255,0), (255,0,255), (0,0,0), (120,120,120), (255,255,255)]
titles = ("Red", "Green", "Blue", "Yellow", "Cyan", "Purple", "Black", "Gray", "White")
imgs = []
h, w, c = 10, 10, 3
index = 0
for clr in bgr_s:
img = np.zeros((h, w, c), dtype=np.uint8)
img[:,:,0:c] = clr
hsvImg = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
imgRgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
imgs.append(imgRgb)
print(f"{titles[index]}, bgr={clr}, hsv={hsvImg[0,0,:]}")
index += 1
index = 1
for tmpImg in imgs:
plt.subplot(3, 3, index)
plt.imshow(tmpImg, "gray")
plt.title(titles[index-1])
plt.xticks([])
plt.yticks([])
index += 1
# plt.savefig("out/hsv_space_1.png")
plt.show()
颜色转换值:
Red, bgr=(0, 0, 255), hsv=[ 0 255 255]
Green, bgr=(0, 255, 0), hsv=[ 60 255 255]
Blue, bgr=(255, 0, 0), hsv=[120 255 255]
Yellow, bgr=(0, 255, 255), hsv=[ 30 255 255]
Cyan, bgr=(255, 255, 0), hsv=[ 90 255 255]
Purple, bgr=(255, 0, 255), hsv=[150 255 255]
Black, bgr=(0, 0, 0), hsv=[0 0 0]
Gray, bgr=(120, 120, 120), hsv=[ 0 0 120]
White, bgr=(255, 255, 255), hsv=[ 0 0 255]
效果图:
Hsv转Bgr
def colorSpaceTestExW():
hsv_s = [(0,255,255),(60,255,255),(120,255,255),(30,255,255),(90,255,255),(150,255,255),(0,0,0),(0,0,120),(0,0,255)]
titles = ("Red", "Green", "Blue", "Yellow", "Cyan", "Purple", "Black", "Gray", "White")
imgs = []
h, w, c = 10, 10, 3
index = 0
for hsv in hsv_s:
imgHsv = np.zeros((h, w, c), dtype=np.uint8)
imgHsv[:, :, 0:c] = hsv
imgBgr = cv2.cvtColor(imgHsv, cv2.COLOR_HSV2BGR)
imgRgb = cv2.cvtColor(imgBgr, cv2.COLOR_BGR2RGB)
imgs.append(imgRgb)
print(f"{titles[index]}, bgr={imgBgr[0,0,:]}, hsv={imgHsv[0,0,:]}")
index += 1
index = 1
for tmpImg in imgs:
plt.subplot(3, 3, index)
plt.imshow(tmpImg, "gray")
plt.title(titles[index - 1])
plt.xticks([])
plt.yticks([])
index += 1
# plt.savefig("out/hsv_space_2.png")
plt.show()
颜色转换值:
Red, hsv=[ 0 255 255] bgr=[ 0 0 255]
Green, hsv=[ 60 255 255] bgr=[ 0 255 0]
Blue, hsv=[120 255 255] bgr=[255 0 0]
Yellow, hsv=[ 30 255 255] bgr=[ 0 255 255]
Cyan, hsv=[ 90 255 255] bgr=[255 255 0]
Purple, hsv=[150 255 255] bgr=[255 0 255]
Black, hsv=[0 0 0] bgr=[0 0 0]
Gray, hsv=[ 0 0 120] bgr=[120 120 120]
White, hsv=[ 0 0 255] bgr=[255 255 255]
效果图: