ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

案例-使用python实现基于opencv的进度条控制图像

2022-02-21 20:01:21  阅读:201  来源: 互联网

标签:img min python max 进度条 cv2 TrackBar opencv empty


该案例是一个基础的opencv交互案例,主要过程是使用TrackBar()功能实现。具体而言就是将RGB图片转为HSV格式。然后使用进度条调整数值。来取出想要的颜色区域。可以为后期颜色屏幕笔案例做基础。具体代码如下:

import cv2
import numpy as np

def empty(v):
    pass

img = cv2.imread("pyopencv_again/XiWinnie.jpg")
img = cv2.resize(img,(0,0),fx=0.5,fy=0.5)
cv2.namedWindow('TrackBar')
cv2.resizeWindow('TrackBar',640,320)

cv2.createTrackbar('Hue Min','TrackBar',0,179,empty)
cv2.createTrackbar('Hue Max','TrackBar',179,179,empty)
cv2.createTrackbar('Sat Min','TrackBar',0,255,empty)
cv2.createTrackbar('Sat Max','TrackBar',255,255,empty)
cv2.createTrackbar('Val Min','TrackBar',0,255,empty)
cv2.createTrackbar('Val Max','TrackBar',255,255,empty)

hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
while True:
    #获取进度条上设置的值
    h_min = cv2.getTrackbarPos('Hue Min','TrackBar')
    h_max = cv2.getTrackbarPos('Hue Max','TrackBar')
    s_min = cv2.getTrackbarPos('Sat Min','TrackBar')
    s_max = cv2.getTrackbarPos('Sat Max','TrackBar')
    v_min = cv2.getTrackbarPos('Val Min','TrackBar')
    v_max = cv2.getTrackbarPos('Val Max','TrackBar')
    #print(h_min,h_max,s_min,s_max,v_min,v_max)
    #将数值存为数组
    lower = np.array([h_min,s_min,v_min])
    upper = np.array([h_max,s_max,v_max])
    #print(lower)  #[0,0,0]
    #inRange()函数可实现二值化功能(这点类似threshold()函数),更关键的是可以同时针对多通道进行操作,使用起来非常方便!
    mask = cv2.inRange(hsv,lower,upper)
    result = cv2.bitwise_and(img,img,mask=mask)

    cv2.imshow('img',img)
    cv2.imshow('hsv',hsv)
    cv2.imshow('mask',mask)
    cv2.imshow('result',result)
    cv2.waitKey(10)

标签:img,min,python,max,进度条,cv2,TrackBar,opencv,empty
来源: https://blog.csdn.net/qq_33392383/article/details/123054444

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有