颜色转换API:cvtColor(img,colorsapce)
cvt含义为转换 convesion(转换)
下面为示例代码:
import cv2
# callback中至少有一个参数
def callback(value):
pass
cv2.namedWindow("color", cv2.WINDOW_NORMAL)
cv2.resizeWindow("color", 300, 600)
img = cv2.imread("xiaoyang.jpeg")
# 创建颜色空间
# 其中2 含义为to
# A 为透明度
# GRAY为黑白的照片
colorspaces = [cv2.COLOR_BGR2RGBA, cv2.COLOR_BGR2BGRA,
cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV,
cv2.COLOR_BGR2YUV]
# 0-4分别代表上面物种颜色空间
cv2.createTrackbar("curcolor", "color", 0, 4, callback)
# 最小值为0 最大值为4
while True:
index = cv2.getTrackbarPos("curcolor", "color") # 调用TrackbarPos时会返回Trackbar的当前值 范围为0-4
cvt_img = cv2.cvtColor(img, colorspaces[index])
cv2.imshow("color", cvt_img)
key = cv2.waitKey(10)
if key == ord("q"):
break
cv2.destroyAllWindows()
注意点:
1.Opencv的默认读取行为BGR,因此图片颜色空间转换都是从BGR开始转换
2.颜色空间中的参数,例如cv2.COLOR_BGR2RGBA实际上是数值。类似于映射。
例如打印 cv2.COLOR_BGR2HSV
3.callback回调函数中至少要有一个参数,即使没有用到。
import cv2
print(cv2.COLOR_BGR2HSV)
结果如下所示: