案例来源于© Fu Xianjun. All Rights Reserved.
标题:视频处理
import cv2
cap = cv2.VideoCapture(0)#打开摄像头
while(cap.isOpened()):
ret,frame = cap.read()
#转化为灰度图
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
#阈值处理
ret, binary = cv2.threshold(gray,100,255,0)
#canny
canny = cv2.Canny(binary,50,100)
canny = cv2.bitwise_and(img,canny)
#显示视频
cv2.imshow("frame",canny)
#
if cv2.waitKey(1) == ord("q"):
break
cap.release()#释放摄像头的资源
cv2.destroyAllWindows()
#二
```bash
```python
```python
```python
```bash
```bash
import cv2
import numpy as np
#首先打印出红、绿、蓝三色的HSV值,来确定三色的阈值。
red = np.uint8([[[255, 0, 0]]])
hsv_red = cv2.cvtColor(red, cv2.COLOR_BGR2HSV)
print (hsv_red)
#[[[120 255 255]]]
green = np.uint8([[[0, 255, 0]]])
hsv_green = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
print (hsv_green)
#[[[ 60 255 255]]]
blue = np.uint8([[[0, 0, 255]]])
hsv_blue = cv2.cvtColor(blue, cv2.COLOR_BGR2HSV)
print (hsv_blue)
# [[[ 0 255 255]]]
#创建视频对象,0为内置摄像头
cap = cv2.VideoCapture("1.mp4")
while (1):
# 获取每一帧
ret, frame = cap.read()
# BGR 转换到 HSV,本质上是BGR转RGB
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
#设定阈值,确定追踪的颜色为红、绿、蓝三色。
#由上面红、绿、蓝的HSV输出值可知在BGR的模式下阈值为0-120 ,可根据阈值表知道此时RGB模式下阈值取60-120。
lower_color = np.array([60, 100, 100])
upper_color = np.array([180, 255, 255])
# 根据阈值构建掩模,构建黑白图。
mask = cv2.inRange(hsv, lower_color,upper_color)
# 对原图像和掩模进行按位与运算,即红、蓝、绿颜色覆盖白色区域,黑色保留
res = cv2.bitwise_and(frame, frame, mask=mask)
# 显示图像
# cv2.imshow('frame', frame)#原图
# cv2.imshow('mask', mask)#黑白图
cv2.imshow('res', res)#颜色显示图
k = cv2.waitKey(250) & 0xFF
if k == 27:
break
# 关闭窗口
cv2.destroyAllWindows()