怎么用python制作滑动条形式的调色器?

 时间:2026-02-12 09:05:01

1、先制作一个图像窗口:

import cv2

cv2.namedWindow('a')

怎么用python制作滑动条形式的调色器?

2、在图像窗口里面插入一个滑动条:

def nothing(x):

    pass

cv2.createTrackbar('R','a',99,255,nothing)

这是创建滑动条的函数;

参数“R”表示滑动条的名称;

“a”表示这个滑动条放在图像窗口a里面;

99表示滑动条的当前位置是99;

255表示滑动条的最大值,这个滑动条的取值范围是0到255之间的整数;

nothing是上面创建的自定义函数,暂时什么都不做。

怎么用python制作滑动条形式的调色器?

3、拖动一下滑动条,会发现没变化,这是因为窗口里面还没有图像。

怎么用python制作滑动条形式的调色器?

4、创建一个300*100的黑色img:

img=np.zeros((100,300,3),np.uint8)

注意此时加载了numpy模块;

这是一个3通道的黑色图片,像素值都是0。

怎么用python制作滑动条形式的调色器?

5、但是此时拖动滑块,图像颜色还是没有变化。

因为:

        滑动条的值还没有与图像像素值绑定。

怎么用python制作滑动条形式的调色器?

6、下面把像素值与滑动值绑定:

r=cv2.getTrackbarPos('R','a')

img[:,:,2]=r

cv2.imshow('a',img)

cv2.waitKey(0)

cv2.destroyAllWindows()

注意,cv2里面,默认的红色通道是第三通道,三通道的顺序为B、G、R。

怎么用python制作滑动条形式的调色器?

7、但是,滑块还是无法改变图像颜色。

这是因为,滑动条的值改变了,但是r的值并没有随之而改变,或者说,程序运行没有刷新。

怎么用python制作滑动条形式的调色器?

8、用while循环加上一个switch语句,可以让程序保持随时可以刷新:

switch='0:OFF\n1:ON'

cv2.createTrackbar(switch,'a',0,1,nothing)

#上面这是一个开关(也是滑动条),只有0和1两个值;

while(1):

    cv2.imshow('a',img)

    k=cv2.waitKey(1)&0xFF

    if k==27:

        break

    r=cv2.getTrackbarPos('R','a')

    s=cv2.getTrackbarPos(switch,'a')

    if s==0:

        img[:]=0

    else:

        img[:]=[0,0,r]

打开开关,滑动条才能起作用。

怎么用python制作滑动条形式的调色器?

9、再加上绿色和蓝色滑动条。

注意,img的大小被改了。

怎么用python制作滑动条形式的调色器?

10、整体效果:

怎么用python制作滑动条形式的调色器?

  • 如何用VB制作一个比赛评分系统?VB编程入门
  • edge浏览器如何开启阅读模式
  • 笔记本充手机伤电脑吗
  • Python编程:如何使用if语句进行条件判断
  • Edge浏览器怎么进入阅读模式
  • 热门搜索
    浙江省内旅游景点 最好的旅游胜地 东北有哪些旅游景点 全国十大旅游胜地 上海市商贸旅游 桂林旅游人才网 我要去山西旅游 上海黄山旅游 最佳旅游景点 温州旅游社