OpenCV练习:尝试同时提取多个不同的颜色物体,比如同时提取红,蓝,绿三个不同颜色的物体。

python:

1.先是通过

import cv2
import numpy as np

red = np.uint8([[[255,0,0]]])
hsv_red=cv2.cvtColor(red,cv2.COLOR_BGR2HSV)
print hsv_red

green=np.uint8([[[0,255,0]]])
hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
print hsv_green

blue = np.uint8([[[0,0,255]]])
hsv_blue=cv2.cvtColor(blue,cv2.COLOR_BGR2HSV)
print hsv_blue

得出红绿蓝的HSV值。结果是:

注意此时的值是在OpenCV的条件下得出,则默认是使用BGR的顺序。

2.通过代码实现同时提取红,蓝,绿三个不同颜 色的物体的功能。

#coding=utf-8</code>
import cv2
import numpy as np

cap=cv2.VideoCapture(0)
while(1):
	# 获取每一帧
	ret,frame=cap.read()
	# 转换到 HSV
	hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
	# 设定阈值,注意这里使用的numpy所以回到了RGB的顺序,之前在BGR状态下阈值是0-120,故现在是60-180
	lower_blue=np.array([60,100,100])
	upper_blue=np.array([180,255,255])
	# 根据阈值构建掩模
	mask=cv2.inRange(hsv,lower_blue,upper_blue)
	# 对原图像和掩模进行位运算
	res=cv2.bitwise_and(frame,frame,mask=mask)
	# 显示图像
	cv2.imshow('frame',frame)
	cv2.imshow('mask',mask)
	cv2.imshow('res',res)
	k=cv2.waitKey(5)&0xFF
	if k==27:
		break
# 关闭窗口
cv2.destroyAllWindows()

实现结果:

 

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LebronChen666

感谢码友们的支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值