【学习OpenCV4】进度条实现总结

本文分享内容来自图书《学习OpenCV 4:基于Python的算法实战》,该书内容如下:

1章 OpenCV快速入门;
第2章 图像读写模块imgcodecs;
第3章 核心库模块core;
第4章 图像处理模块imgproc(一);
第5章 图像处理模块imgproc(二);
第6章 可视化模块highgui;
第7章 视频处理模块videoio;
第8章 视频分析模块video;
第9章 照片处理模块photo;
第102D特征模块features2d;
第11章 相机标定与三维重建模块calib3d;
第12章 传统目标检测模块objdetect;
第13章 机器学习模块ml;
第14章 深度神经网络模块dnn

欢迎关注图书《深度学习计算机视觉实战》与《学习OpenCV4:基于Python的算法实战》。
在这里插入图片描述

OpenCV中提供了创建进度条的函数为createTrackbar,函数定义如下:

createTrackbar(trackbarName, windowName, value, count, onChange)

参数说明如下:
trackbarName,进度条名称;
windowName,窗口名;
value,进度条初始位置值;
count,进度条最大值;
onChange,进度条滑动回调函数。
createTrackbar函数返回值为None。
OpenCV中提供了获取进度条位置的函数为getTrackbarPos,函数定义如下:

retval = getTrackbarPos(trackbarname, winname)

参数说明如下:
trackbarName,进度条名称;
windowName,窗口名;
retval,获取的进度条位置。
本案例简单的实现了一个颜色混合器(或称调色板),图像窗口中创建了三个进度条,进度条的值为0~255,三个进度条的值对应图像的RGB三个通道的值,调节进度条可以查看颜色混合后的结果。案例代码如下:

import cv2 
 import numpy as np


# 定义进度条回调函数
def changeColor(x):
    # 获取进度条中R通道颜色值
    color_r = cv2.getTrackbarPos('color_R', 'image')
    # 获取进度条中G通道颜色值
    color_g = cv2.getTrackbarPos('color_G', 'image')
    # 获取进度条中B通道颜色值
    color_b = cv2.getTrackbarPos('color_B', 'image')
    # 给图像img的BGR三个通道颜色赋值
    img[:] = [color_b, color_g, color_r]
    cv2.imshow("image", img)

# 创建图像
img = np.zeros([512, 512, 3], np.uint8)
# 创建窗口image
cv2.namedWindow("image")
# 创建三个进度条,对应三个通道颜色
cv2.createTrackbar("color_R", 'image', 0, 255, changeColor)
cv2.createTrackbar("color_G", 'image', 0, 255, changeColor)
cv2.createTrackbar("color_B", 'image', 0, 255, changeColor)
# 无限循环等待键盘事件
while(True):
    cv2.imshow("image", img)
    #如果按键为ESC则退出
    key = cv2.waitKey(0)
    if key == 27:
        break
    cv2.destroyAllWindows()

案例执行结果如图6.6所示。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lxiao428/article/details/123726420
今日推荐