OpenCV是一个功能强大的开源机器视觉库,也提供了完善的Python接口,本文演示如何在窗体上创建颜色滑动条,并实时改变图像颜色。
导入库
import cv2
import os
import numpy as np
读取图像,复制一份源图,创建同样大小的纯颜色图像,并创建一个窗口
imgpath=os.path.join(os.getcwd(),'img',"00441-451.jpg")
img=cv2.imread(imgpath)
src=img.copy()
color=np.zeros(img.shape,np.uint8)
cv2.namedWindow('image')
在窗体上创建滑动条(B,G,R三通道的值(0-255)),并可设置滑动条的初值
#一个空事件
def nothing(x):
pass
# 创建颜色滑动条
cv2.createTrackbar('B','image',0,255,nothing)
cv2.createTrackbar('G','image',0,255,nothing)
cv2.createTrackbar('R','image',0,255,nothing)
# #设置初始值
# cv2.setTrackbarPos('B','image',0)
# cv2.setTrackbarPos('G','image',0)
# cv2.setTrackbarPos('R','image',0)
滑动颜色条,实时改变图像颜色,这里使用的是与颜色图像相加
while True:
#获取滑动条的值
b=cv2.getTrackbarPos('B','image')
g=cv2.getTrackbarPos('G','image')
r=cv2.getTrackbarPos('R','image')
#设置颜色
color[:]=[b,g,r]
#两图相加
img=cv2.add(src,color)
#显示图像
cv2.imshow('image',img)
if cv2.waitKey(10)==27:
break
cv2.destroyAllWindows()
运行效果: