第六节 访问相机

本文章对应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

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值