opencv学习(四)——轨迹栏作为调色板
轨迹栏作为调色板
在这里,我们将创建一个简单的应用程序,以显示指定的颜色。有一个显示颜色的窗口,以及三个用于指定B、G、R颜色的轨迹栏。滑动轨迹栏,并相应地更改窗口颜色。默认情况下,初始颜色将设置为黑色。
对于cv.getTrackbarPos() 函数,第一个参数是轨迹栏名字,第二个参数是它附加到的窗口名,第三个参数是默认值,第四个是最大值,第五个是回调函数,滑条改变所执行的函数。这个回调函数也有一个默认参数,表示轨迹栏位置。我们并不关心函数做什么事,所以我们简单提一下。
轨迹栏的另一个重要应用是将其用作按钮或开关。默认情况下,OpenCV不具有按钮功能。因此,您可以使用轨迹栏获得此类功能。在我们的应用程序中,我们创建了一个开关,只有在该开关为ON的情况下,该应用程序才能在其中运行,否则屏幕始终为黑色。
import cv2
import numpy as np
def nothing(x):
pass
#创建一个黑色的图像,一个窗口
img = np.zeros((512, 512, 3), np.uint8)
def cv_show(name, img, callback):
cv2.namedWindow(name)
#创建颜色变化的轨迹栏
cv2.createTrackbar('R', name, 0, 255, callback)
cv2.createTrackbar('G', name, 0, 255, callback)
cv2.createTrackbar('B', name, 0, 255, callback)
#为ON/OFF功能创建开关
switch = '0 : OFF \n 1 : ON'
cv2.createTrackbar(switch, name, 0, 1, callback)
while(1):
cv2.imshow(name, img)
k = cv2.waitKey(1) & 0XFF
if k == 27:
break
#得到四条轨迹的当前位置
r = cv2.getTrackbarPos('R', name)
g = cv2.getTrackbarPos('G', name)
b = cv2.getTrackbarPos('B', name)
s = cv2.getTrackbarPos(switch, name)
if s == 0:
img[:] = 0
else:
img[:] = [b, g, r]
cv2.destroyAllWindows()
cv_show('image', img, nothing)

opencv学习(四)——轨迹栏作为调色板的更多相关文章
- OpenCV-Python 轨迹栏作为调色板 | 九
目标 了解将轨迹栏固定到OpenCV窗口 您将学习以下功能:cv.getTrackbarPos,cv.createTrackbar等. 代码演示 在这里,我们将创建一个简单的应用程序,以显示您指定的颜 ...
- OpenCV 学习笔记03 凸包convexHull、道格拉斯-普克算法Douglas-Peucker algorithm、approxPloyDP 函数
凸形状内部的任意两点的连线都应该在形状里面. 1 道格拉斯-普克算法 Douglas-Peucker algorithm 这个算法在其他文章中讲述的非常详细,此处就详细撰述. 下图是引用维基百科的.ε ...
- 【opencv学习笔记八】创建TrackBar轨迹条
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
- opencv学习笔记(四)投影
opencv学习笔记(四)投影 任选了一张图片用于测试,图片如下所示: #include <cv.h> #include <highgui.h> using namespace ...
- OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
http://blog.csdn.net/chenyusiyuan/article/details/8710462 OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 201 ...
- OpenCV 学习笔记 07 目标检测与识别
目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV ...
- openCV学习——一、图像读取、显示、输出
openCV学习——一.图像读取.显示.输出 一.Mat imread(const string& filename,int flags=1),用于读取图片 1.参数介绍 filename ...
- OpenCV 学习笔记03 findContours函数
opencv-python 4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...
- OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建
# OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-hom ...
随机推荐
- Python基础(普通函数及参数)
# def my_abs(x): # if not isinstance(x,(int,float)):#参数类型做检查,只允许整数和浮点数类型的参数.数据类型检查可以用内置函数isinstance( ...
- Django笔记&教程 0-1 前言
Django 自学笔记兼学习教程第0章第1节--前言 点击查看教程总目录 1 最初的想法 自学Django已经有一段时间了,自认收获不少,学的还算可以,然而实际去做项目写代码的时候,很多用法记得不清, ...
- 通过python来获取网页状态
#!/usr/bin/python import sys,httplibfrom optparse import OptionParserusageString = "Usage: %pro ...
- 仿Word的支持横轴竖轴的WPF 标尺
最近在 https://mp.weixin.qq.com/s/3dEO0NZQv5YLqK72atG4Wg 官方公众号看到了 用WPF 制作 标尺 在去年项目上也接到了一个需求,用于排版自定义拖 ...
- SQL Server学习之路:建立数据库、建立表
1.前言 配置是win10+SQL Server 2012,使用的GUI管理工具是SQL Server 2012自带的SQL Server Management Studio(以下简称SSMS).本系 ...
- [cf559E]Gerald and Path
将所有线段的端点(即$a_{i}$和$a_{i}\pm l_{i}$)离散,并按照$a_{i}$从小到大排序 定义$f_{i,,j}$表示前$i$条线段在位置$j$之前最多能覆盖的长度(默认覆盖到$j ...
- [nowcoder5669H]Harder Gcd Problem
题目相当于问1-n中最多能选出多少对不互素无交集的二元组,并要求方案 构造:将所有数放入其最小质因子对应的集合,若素数p所对应的集合元素个数为奇数且$p\ne 2$且$2p\le n$,那么就将$2p ...
- 什么是CLI、GUI
就是命令行界面command-line interface,也有人称之为字符用户界面(CUI). 通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作. 因为,命令行界面的软件通常 ...
- java Scanner类与String类
Scanner类的使用: 导入Scanner包,new Scanner对象,记得调用System.in参数,调用对应next方法实现键盘录入. import java.util.Arrays; i ...
- Redis队列跟MQ的区别
Redis队列:Redis队列是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用 ...