Opencv基础自学五(捕获特定颜色)

通过指定颜色,这次的例子是绿色,即图片中所有的绿色(这里的绿色有清晰的界限,最低值和最高值,一般所说的绿色是非常抽象的,但计算机的绿色要明显指定),都会捕获到,并显示出来。

import cv2 as cv
import numpy as np





def extrace_object_demo():
	capture = cv.VideoCapture("D:/testvideo.rmvb")
	while(True):
		ret, frame = capture.read()#第一个参数ret的值为True或False,代表有没有读到图片。第二个参数是frame,是当前截取一帧的图片。
		if ret == False:#如果读不到图片,退出循环,即视频的图片已结束
			break
		hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)#把它转成色彩空间
		lower_hsv = np.array([37, 43, 46])#创建一行3列,最低值
		upper_hsv = np.array([77, 255, 255])#创建一行3列,最高值
		mask = cv.inRange(hsv, lowerb=lower_hsv, upperb=upper_hsv)#创建跟踪颜色,这次是绿色,输入图片,低值,高值
		#cv.imshow("mask", mask)#可以直接用,但只是原始的数据,
		dst = cv.bitwise_and(frame, frame, mask=mask)#这个应该是加载视频的数据进行演示,使用位“与”运算来叠加面具,前面两个参数固定,最后一个是掩码
		cv.imshow("video", frame)#输出原始视频
		cv.imshow("mask", dst)#补抓到的视频,绿色颜色
		c = cv.waitKey(40)# 程序会等待40毫秒才会读取下一帧
		if c == 27:#如果是按“esc”,则退出
			break



print("--------- Hello Python ---------")
extrace_object_demo()
cv.waitKey(0)

效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值