#HSV颜色空间
hsv对处理一些颜色在人像方面要好用一些,这是一篇入门的操作使用。对lena.bmp做颜色调整
import os
import numpy as np
import cv2 as cv
# bug:takes 0 positional arguments but 1 was given
# solve:func加上参数
def empty(a):
pass
接着是图像的读取与一个颜色转换
######################### 颜色检测 ############################
FilePath = 'D:/Game/Pycharm_Prom/Dataset/Images/LenaRGB.bmp'
img = cv.imread(FilePath)
imgGray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) # Gray
imgHsv = cv.cvtColor(img,cv.COLOR_BGR2HSV) # Hsv
##这里Trackbar做一个使用笔记
createTrackbar()函数的函数原型为:
CV_EXPORTS int createTrackbar(const String& trackbarname, const String& winname,int* value, int count,TrackbarCallback onChange = 0, void* userdata = 0);
trackbarname:这个参数用来给这个滚动条取一个名字;
winname:这个参数用来指定你要吧这个滚动条用到那个窗口上;
value:这个参数用来设置滑块初始值位置,同时记录滑块以后的位置;
count:这个参数用来指定滚动条可以滚动的最大值;
onChange:这个参数可以理解为一个函数类型的变量(当然这样说感觉有点怪),用来接收回调函数函数名的,默认值为0;
userdata:这个变量这个参数是用户传给回调函数的数据,用来处理轨迹条事件,默认值为0。
这里面一共有6个参数,其中value这个参数容易理解有偏差,onchange,userdata这俩参数可能难以理解;
# 创建轨迹栏TrackBars
cv.namedWindow("TrackBars")
cv.resizeWindow("TrackBars",640,240) # shape
然后增加Hue Saturation Value条
cv.createTrackbar("Hue Min","TrackBars",0,179,empty) #设hsv色彩空间色调[0:180]
cv.createTrackbar("Hue Max","TrackBars",19,179,empty)
cv.createTrackbar("Sat Min","TrackBars",110,255,empty) #Saturation
cv.createTrackbar("Sat Max","TrackBars",240,255,empty)
cv.createTrackbar("Val Min","TrackBars",153,255,empty) #Value
cv.createTrackbar("Val Max","TrackBars",255,255,empty)
可以对图像做一个拼接显示
imgStack = stackImages(0.6,([img,imgHsv],[mask,imgResult]))
cv.imshow("StackImage", imgStack)
cv.waitKey(0)
这里是结果截图
资料参考:
https://github.com/murtazahassan/Learn-OpenCV-in-3-hours/
视频讲解:
3h精通Opencv-Python(BV16K411W7x9)
最后感谢一下 导 的辛苦上传和转载