OpenCV 使用滑动条来调整函数参数

Flink流处理
• 阅读 2811

OpenCV 使用滑动条来调整函数参数 Python版本

引言

在观察OpenCV中某个函数在不同参数的情况下,所得到的效果的时候,我之前是改一次参数运行一次,这样做起来操作麻烦,效率低下。为了更便捷的观察参数变化时带来的处理效果改变 可以使用滑动条来改变参数

具体思路

  1. 使用cv2.createTrackbar()创建滑动条,有几个参数就创建几个
  2. 对每个参数定义回调函数
  3. 在回调函数中显示图片

注意 滑动条的窗口名称 要与 图片显示的窗口名字相同

代码实现

import cv2

d = 0
color = 0
space = 0
def change_d(x):
    d = x
    blur = cv2.bilateralFilter(img,d,color,space)
    cv2.imshow("myImg",blur)

def change_color(x):
    color = x
    blur = cv2.bilateralFilter(img,d,color,space)
    cv2.imshow("myImg",blur)

def change_space(x):
    space = x
    blur = cv2.bilateralFilter(img,d,color,space)
    cv2.imshow("myImg",blur)

img = cv2.imread('car2.jpeg')
cv2.namedWindow('myImg')
cv2.createTrackbar('d','myImg',1,500,change_d)
cv2.createTrackbar('color','myImg',1,500,change_color)
cv2.createTrackbar('space','myImg',1,500,change_space)

while(1):
    k = cv2.waitKey(1)&0xFF
    if k==27:
        break
    d = cv2.getTrackbarPos('d','myImg')
    color = cv2.getTrackbarPos('color','myImg')
    space = cv2.getTrackbarPos('space','myImg')


cv2.destroyAllWindows()

效果展示

OpenCV 使用滑动条来调整函数参数

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
4年前
11个案例讲透 Python 函数参数
今天给大家分享一下自己整理的一篇Python参数的内容,内容非常的干,全文通过案例的形式来理解知识点,自认为比网上80%的文章讲的都要明白,如果你是入门不久的python新手,相信本篇文章应该对你会有不小的帮助。接下来是正文。1.参数分类函数,在定义的时候,可以有参数的,也可以没有参数。从函数定义的角度来看,参数可以分为两种:1必选参数:调
LinMeng LinMeng
4年前
call、apply、bind三者为改变this指向的方法。
共同点:第一个参数都为改变this的指针。若第一参数为null/undefined,this默认指向window差异点如下:1.call(无数个参数)第一个参数:改变this指向第二个参数:实参使用之后会自动执行该函数functionfn(a,b,c){console.log(this,abc);//this指
Irene181 Irene181
4年前
浅析Python函数的参数
一、前言Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。二、可变参数在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。案例:请计算a2
菜园前端 菜园前端
2年前
什么是函数柯里化?
原文链接:什么是函数柯里化?函数柯里化(HaskellBrooksCurry),当一个函数有多个参数的时候先传递一部分参数并且调用它(这部分参数后续不会进行改变),然后返回一个新的函数接收剩余的参数并返回结果。总结柯里化可以让我们给一个函数传递较少的参数得
Wesley13 Wesley13
3年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Wesley13 Wesley13
3年前
C语言利用va_list、va_start、va_end、va_arg宏定义可变参数的函数
在定义可变参数的函数之前,先来理解一下函数参数的传递原理:1、函数参数是以栈这种数据结构来存取的,在函数参数列表中,从右至左依次入栈。2、参数的内存存放格式:参数的内存地址存放在内存的堆栈段中,在执行函数的时候,从最后一个(最右边)参数开始入栈。因此栈底高地址,栈顶低地址,举个例子说明一下:voidtest(inta,floatb,ch
Stella981 Stella981
3年前
Python技巧之强制使用关键字参数
在Python3中,你可以在函数参数列表中使用一个星号“\”来强制调用者只能使用关键字参数InPython3youcanuseabare""asteriskinfunctionparameterliststoforcethecallertousekeywordargumen
Stella981 Stella981
3年前
JVM垃圾收集调优案例
简介通过压力测试查看xwiki的gc情况,统计分析gc日志,在不改变总内存使用的情况下做出合理调整,通过压力测试聚合报告对比调优效果。步骤1.运行程序,增加打印GC日志的参数;2.使用badboyjmeter对web程序的单个页面(首页)进行压力测试,压力测试参数为10线程,每线程执行100次测试;3.使用js
Stella981 Stella981
3年前
Python序列拆分操作符与映射拆分操作符实例
使用序列拆分操作符(\)来提供位置参数。例如函数heron的参数存放于一个列表sides中,可以:heron(sides\0\,sides\1\,sides\2\)也可以进行拆分:heron(\sides)。如果列表包含比函数参数更多的项数,就可以使用分片提取出合适的参数。1.在使用可变数量的位置参数的函数时,可使用
铁扇公主 铁扇公主
1年前
屏幕调节亮度软件推荐 Lunar pro最新激活版
LunarPro是一款专为Mac设计的屏幕亮度调节工具,它可以帮助用户在Mac上控制外接显示器的亮度、色温、对比度等参数,以实现更舒适的工作和娱乐体验。LunarPro具有直观简洁的用户界面,易于使用。在主界面中,用户可以选择需要调节的显示器,并通过滑动条
小万哥 小万哥
1年前
C++ 默认参数与引用传递:语法、用法及示例
C默认参数默认参数概述在C中,函数参数可以拥有默认值。这意味着,在调用函数时,如果省略了某个参数,那么将使用为该参数指定的默认值。设置默认参数默认参数值使用等号符号进行设置,位于参数声明的类型之后。例如:cvoidmyFunction(stri
Flink流处理
Flink流处理
Lv1
故园渺何处,归思方悠哉。
文章
5
粉丝
0
获赞
0