自我记录:Python学习之OpenCV 05 图片的颜色提取
程序员文章站
2024-01-14 08:08:52
05 图片的颜色提取利用cv2.inRange函数进行颜色提取mask = cv2.inRange(hsv, lowerb, upperb)函数很简单,参数有三个第一个参数:hsv指的是原图第二个参数:lowerb指的是图像中低于这个lowerb的值,图像值变为0第三个参数:upperb指的是图像中高于这个upperb的值,图像值变为0而在lower_red~upper_red之间的值变成255来自https://blog.csdn.net/qq_42444944/article/detai...
05
利用cv2.inRange函数进行颜色提取
mask = cv2.inRange(hsv, lowerb, upperb)
函数很简单,参数有三个
第一个参数:hsv指的是原图
第二个参数:lowerb指的是图像中低于这个lowerb的值,图像值变为0
第三个参数:upperb指的是图像中高于这个upperb的值,图像值变为0
而在lower_red~upper_red之间的值变成255
来自https://blog.csdn.net/qq_42444944/article/details/91988092
也就是将要提取的颜色变为白色,其他为黑色
我提取了蓝色和绿色
import cv2 as cv
import numpy as np
def extrace_object_blue():
src=cv.imread("./timg.jpg")
hsv=cv.cvtColor(src,cv.COLOR_BGR2HSV)
lower=np.array([100,43,46])
uper=np.array([124,255,255])
timg=cv.inRange(hsv,lowerb=lower,upperb=uper)
cv.imshow("window_blue",timg)
def extrace_object_green():
src=cv.imread("./timg.jpg")
hsv=cv.cvtColor(src,cv.COLOR_BGR2HSV)
lower=np.array([35,43,46])
uper=np.array([77,255,255])
timg=cv.inRange(hsv,lowerb=lower,upperb=uper)
cv.imshow("window_green",timg)
extrace_object_blue()
extrace_object_green()
cv.waitKey(0)
cv.destroyAllWindows()
原图:
提取蓝色:
提取绿色
这个函数同样可以用于处理视频,需要一个循环,对每帧进行处理
本文地址:https://blog.csdn.net/weixin_42294553/article/details/107313356