栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

OpenCV学习四:TrackBar控件(滑动条)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenCV学习四:TrackBar控件(滑动条)

一:函数API 1:createTrackbar
int createTrackbar(
	const String &trackbarname, 轨迹条的名字
	const String &winname, 窗口名字。窗口得存在才能创建滑动条
	int* value, 滑块的初始值
	int count, 滑块的最大值(最小位置的值始终为0)
	TrackbarCallback onChange=0, 回调函数
	void* userdata=0 用户传给回调函数的数据
);
2:setTrackbarPos
setTrackbarPos	(const String &trackbarname,需要设置trackbar的名称,与创建的名称相对应
				 const String &winname, trackbar所在窗体的名称
				 int pos 该trackbar的值
);	
二:代码演示 1:BGR调色盘
import cv2
import numpy as np

#鼠标回调函数
def mcallback(event,x,y,flags,userdata):
    pass

cv2.namedWindow('trackbar', cv2.WINDOW_AUTOSIZE)
cv2.resizeWindow('trackbar', 640, 480)

#设置鼠标回调
cv2.createTrackbar('R',"trackbar",0,255,mcallback)
cv2.createTrackbar('G',"trackbar",0,255,mcallback)
cv2.createTrackbar('B',"trackbar",0,255,mcallback)

img=np.zeros((480,640,3),np.uint8)#全黑图片
while True:

    r=cv2.getTrackbarPos('R','trackbar')
    b=cv2.getTrackbarPos('B','trackbar')
    g=cv2.getTrackbarPos('G','trackbar')
    #改变颜色
    img[:]=[b,g,r]
    cv2.imshow('trackbar',img)
    key=cv2.waitKey(10)#为0则只显示一帧
    if(key&0xff==ord('q')):
        break

cv2.destroyAllWindows()

如果觉得有标红不好看回调函数改成: def mcallback(event):

2:特定颜色区域提取
import cv2
import numpy as np


def mcallback(x):
    pass


cv2.namedWindow("Tracking")
#绿色的HSV:可能不是很准
#l_g = np.array([35, 43, 46]) # 下限
#u_g = np.array([77,255,255]) # 上限
cv2.createTrackbar("LH", "Tracking", 35, 255, mcallback)
cv2.createTrackbar("LS", "Tracking", 43, 255, mcallback)
cv2.createTrackbar("LV", "Tracking", 46, 255, mcallback)
cv2.createTrackbar("UH", "Tracking", 77, 255, mcallback)
cv2.createTrackbar("US", "Tracking", 255, 255, mcallback)
cv2.createTrackbar("UV", "Tracking", 255, 255, mcallback)

while True:
    img = cv2.imread(r"C:UsersDMrPicturestextbook.jpg")
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

    l_h = cv2.getTrackbarPos("LH", "Tracking")
    l_s = cv2.getTrackbarPos("LS", "Tracking")
    l_v = cv2.getTrackbarPos("LV", "Tracking")

    u_h = cv2.getTrackbarPos("UH", "Tracking")
    u_s = cv2.getTrackbarPos("US", "Tracking")
    u_v = cv2.getTrackbarPos("UV", "Tracking")

    l_g = np.array([l_h, l_s, l_v])  # lower green value
    u_g = np.array([u_h, u_s, u_v])

    mask = cv2.inRange(hsv, l_g, u_g)

    res = cv2.bitwise_and(img, img, mask=mask)  # src1,src2

    cv2.imshow("img", img)
    cv2.imshow("mask", mask)
    cv2.imshow("res", res)
    key = cv2.waitKey(10)
    if(key & 0xff == ord('q')):
        break

cv2.destroyAllWindows()

抽空会把hsv的学习笔记会给大家补上,最近在实习

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031006.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号