本文章对应OpenCV免费公开课第六节 Accessing the Camera。课程链节OpenCV官网 配合官网视频教程效果更好。
记得关注专栏啊!最近跟新会很频繁的!
基础相机介绍
本节课很短 只有一下代码和两分钟视频 不过可以自己根据之前的内容复习部分知识
import cv2
import sys
s = 0 #默认选择相机 1
if len(sys.argv) > 1: #如果有其他默认相机 修改为对应相机
s = sys.argv[1]
source = cv2.VideoCapture(s) #创建获取图像的进程
win_name = 'Camera Preview' #创建展示窗口
cv2.namedWindow(win_name, cv2.WINDOW_NORMAL)
while cv2.waitKey(1) != 27: # Esc 退出循环
has_frame, frame = source.read() #获取图片
if not has_frame: #如果没有获取到 退出
break
cv2.imshow(win_name, frame)#展示图片
source.release()
cv2.destroyWindow(win_name)
注释为译者根据自身理解编写
sorce.read()会返回两个变量 一个是图片本身 一个是布尔型变量用于查看是否有图片返回
在使用摄像头展示图片的时候 不要使用plt的imshow 否则会有大量图片积压 展示效果也不好
一下是我自己根据官方提供的代码编写的用于复习阈值化的程序
import cv2
import sys
import keyboard
s = 0
if len(sys.argv) > 1:
s = sys.argv[1]
source = cv2.VideoCapture(s)
win_name = 'Adaptive Thresholding Preview'
cv2.namedWindow(win_name, cv2.WINDOW_NORMAL)
win_name2 = 'Camera Preview'
cv2.namedWindow(win_name2, cv2.WINDOW_NORMAL)
a = 3
c = 11
while cv2.waitKey(1) != 27: # Escape
has_frame, frame = source.read()
if not has_frame:
break
if keyboard.is_pressed('up'):
a+=1
if keyboard.is_pressed('down'):
a -= 1
if keyboard.is_pressed('left'):
c+=2
if keyboard.is_pressed('right'):
if c>3:
c-=2
frameGray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
frameAdapted = cv2.adaptiveThreshold(frameGray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, c, a)
cv2.imshow(win_name, frameAdapted)
cv2.imshow(win_name2, frame)
source.release()
cv2.destroyWindow(win_name)
课后习题
原文为OpenCV免费公开课Free OpenCV Course - Official Certification by OpenCV
翻译 TallentJoe
未经允许,禁止转载
话说真的有人看到这里吗?
答案: AAC