前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV--利用轨迹条进行图片调色

OpenCV--利用轨迹条进行图片调色

作者头像
沧洋
发布2024-01-17 17:08:34
1220
发布2024-01-17 17:08:34
举报
文章被收录于专栏:编程杂记编程杂记

1.创造窗口,创造轨迹条

代码语言:javascript
复制
cv2.namedWindow("TrackBars")
cv2.resizeWindow("TrackBars",640,240)
cv2.createTrackbar("Hue Min","TrackBars",0,179,empty)
cv2.createTrackbar("Hue Max","TrackBars",179,179,empty)
cv2.createTrackbar("Sat Min","TrackBars",0,255,empty)
cv2.createTrackbar("Sat Max","TrackBars",255,255,empty)
cv2.createTrackbar("Val Min","TrackBars",85,255,empty)
cv2.createTrackbar("Val Max","TrackBars",255,255,empty)

2.把轨迹条的参数改变和图片关联起来

代码语言:javascript
复制
    h_min = cv2.getTrackbarPos("Hue Min", "TrackBars")
    h_max = cv2.getTrackbarPos("Hue Max", "TrackBars")
    s_min = cv2.getTrackbarPos("Sat Min", "TrackBars")
    s_max = cv2.getTrackbarPos("Sat Max", "TrackBars")
    v_min = cv2.getTrackbarPos("Val Min", "TrackBars")
    v_max = cv2.getTrackbarPos("Val Max", "TrackBars")

3.运用于图片

代码语言:javascript
复制
    lower = np.array([h_min, s_min, v_min])
    upper = np.array([h_max, s_max, v_max])
    mask = cv2.inRange(imgHSV, lower, upper)
    imgResult=cv2.bitwise_and(img,img,mask=mask)

4.完整代码

代码语言:javascript
复制
import cv2
import numpy as np

def empty(a):
    pass

path="D:/shijue/bij.jpg"
#创建轨迹条
cv2.namedWindow("TrackBars")
cv2.resizeWindow("TrackBars",640,240)
cv2.createTrackbar("Hue Min","TrackBars",0,179,empty)
cv2.createTrackbar("Hue Max","TrackBars",179,179,empty)
cv2.createTrackbar("Sat Min","TrackBars",0,255,empty)
cv2.createTrackbar("Sat Max","TrackBars",255,255,empty)
cv2.createTrackbar("Val Min","TrackBars",85,255,empty)
cv2.createTrackbar("Val Max","TrackBars",255,255,empty)

while True:
    img=cv2.imread(path)
    imgHSV=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
    #应用于图片
    h_min = cv2.getTrackbarPos("Hue Min", "TrackBars")
    h_max = cv2.getTrackbarPos("Hue Max", "TrackBars")
    s_min = cv2.getTrackbarPos("Sat Min", "TrackBars")
    s_max = cv2.getTrackbarPos("Sat Max", "TrackBars")
    v_min = cv2.getTrackbarPos("Val Min", "TrackBars")
    v_max = cv2.getTrackbarPos("Val Max", "TrackBars")
    print(h_max,h_min,s_min,s_max,v_max,v_min)
    lower = np.array([h_min, s_min, v_min])
    upper = np.array([h_max, s_max, v_max])
    mask = cv2.inRange(imgHSV, lower, upper)
    imgResult=cv2.bitwise_and(img,img,mask=mask)
    cv2.namedWindow("Orginal",0)
    cv2.resizeWindow("Orginal",600,400)
    cv2.namedWindow("rest",0)
    cv2.resizeWindow("rest",600,400)
    cv2.imshow("Orginal", img)
    cv2.imshow("rest",imgResult)
    if cv2.waitKey(1)&0xFF==ord('p'):  #按任意键停止
        break

5.运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创造窗口,创造轨迹条
  • 2.把轨迹条的参数改变和图片关联起来
  • 3.运用于图片
  • 5.运行结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档