1、API函数实现调色板
#!/usr/bin/env python3
# -*- coding:UTF8 -*-
"""
学习使用函数cv2.getTrackbarPos()和cv2.createTrackbar()分别用来获取滑动条参数和创建滑动条。
cv2.getTrackbarPos()函数原型如下:
getTrackbarPos(trackbarname, winname) -> retval
cv2.creatTrackbar()函数原型如下:
createTrackbar(trackbarName, windowName, value, count, onChange) -> None
参数1 trackbarName:轨迹条名字
参数2 windowName:窗口名字
参数3 value:滑块初始位置
参数4 count:表示滑块达到最大位置的值
参数5 onChange:默认值为0,指向回调函数
"""
import cv2 as cv
import numpy as np
# 创建一张灰度图
img = np.ones((500, 500, 3), np.uint8) * 127
def nothing(x):
pass
cv.namedWindow('image')
# 创建滑动条
cv.createTrackbar('R', 'image', 0, 255, nothing)
cv.createTrackbar('G', 'image', 0, 255, nothing)
cv.createTrackbar('B', 'image', 0, 255, nothing)
while True:
R = cv.getTrackbarPos('R', 'image')
G = cv.getTrackbarPos('G', 'image')
B = cv.getTrackbarPos('B', 'image')
img[:] = [B, G, R]
cv.imshow('image', img)
k = cv.waitKey(25) & 0xFF
if chr(k) == 'q':
break
cv.destroyWindow('image')
2、使用回调函数完成调色板
#!/usr/bin/env python3
# -*- coding:UTF8 -*-
"""
学习使用函数cv2.getTrackbarPos()和cv2.createTrackbar()分别用来获取滑动条参数和创建滑动条。
cv2.getTrackbarPos()函数原型如下:
getTrackbarPos(trackbarname, winname) -> retval
cv2.creatTrackbar()函数原型如下:
createTrackbar(trackbarName, windowName, value, count, onChange) -> None
参数1 trackbarName:轨迹条名字
参数2 windowName:窗口名字
参数3 value:滑块初始位置
参数4 count:表示滑块达到最大位置的值
参数5 onChange:默认值为0,指向回调函数
"""
import cv2 as cv
import numpy as np
# 创建一张灰度图
img = np.zeros((500, 500, 3), np.uint8)
# 蓝色通道滑动条回调函数
def BlueColorChange(blue):
global img
img[:, :, 0] = blue
# 绿色通道滑动条回调函数
def GreenColorChange(green):
global img
img[:, :, 1] = green
# 红色通道滑动条回调函数
def RedColorChange(red):
global img
img[:, :, 2] = red
cv.namedWindow('image')
# 创建窗口和滑动条
cv.createTrackbar('R', 'image', 0, 255, RedColorChange)
cv.createTrackbar('G', 'image', 0, 255, GreenColorChange)
cv.createTrackbar('B', 'image', 0, 255, BlueColorChange)
while True:
cv.imshow('image', img) # 循环显示图像
k = cv.waitKey(25) # 当‘q’(对应ASCII码为113)按下时退出程序
if k == 113:
break
cv.destroyWindow('image') # 销毁所有窗口