opencv学习笔记及复习(二)读取摄像头以及获取图片类型

一、补充一下:

        之前的图片是放在和代码一样的目录下,简称根目录,这样就可以直接输入所要读取的图片或者视频,无需指定其他路径,若要指定其他路径,最好别有中文。

二、导入包,numpy大概是用于定义数据类型以及做加减乘除与或非等运算的科学计数包(个人理解)。

#获取摄像头,图片的形状及显示
import cv2 as cv
import numpy as np  #科学计数

三、定义一个读取摄像头以及显示函数:

1.cv.VideoCapture(0)代表读取自己电脑上的第0个摄像头,若有其他摄像头更改数字,括号里面也可以读取视频信息,只需指定视频存放的路径,如:读取我放在根目录下的1.mkv : cv.VideoCapture('1.mkv')

2.capture.read也就是cv.VideoCapture.read 他返回一个ret布尔值与frame图片数据帧,若图片读取一直成功ret为true,否则为false。这里参考了python中VideoCapture(),read(),waitKey()的使用 - 简书。

3.由于摄像头读取的图片是和实际上是相反的,所以使用cv.flip对图片数据帧进行镜像对换

cv.flip(参数1:输入图像数据, 参数2:返回值 , 参数3:<0 为x轴翻转   >0 y轴翻转    =0为xyz轴都翻转)   这里参考【OpenCV3】图像翻转——cv::flip()详解_guduruyu的专栏-CSDN博客_opencv图像翻转 

4.显示图片后,延时50ms,c==27代表了键盘上的ESC键,当你按下这个键的时候退出显示。

def Video_demo():
    capture = cv.VideoCapture(0)   #0代表了第0个摄像头
    while(True):
        ret, frame = capture.read()  #读取摄像头
        frame = cv.flip(frame, 1)  #镜像,左右调换
        cv.imshow("video", frame)
        c = cv.waitKey(50)
        if c == 27:
            break

 运行结果如上图。

四、定义一个打印图片数据的函数,查看图片的形状,数据类型以及大小和类型等等

def get_image_info(image):
    print(type(image))  #type为类型
    print(image.shape)  #shape形状
    print(image.dtype)  #dtype 为数据类型
    print(image.size)   #大小
    pixel_data = np.array(image)
    print(pixel_data)

最后运行的时候为这样

 五、cv.imwrite("D:/result.png", src) 第一个参数为保存的路径,src为图像数据,

六.完整代码

#获取摄像头,图片的形状及显示
import cv2 as cv
import numpy as np  #科学计数


def Video_demo():
    capture = cv.VideoCapture(0)   #0代表了第0个摄像头
    while(True):
        ret, frame = capture.read()  #读取摄像头
        frame = cv.flip(frame, 1)  #镜像,左右调换
        cv.imshow("video", frame)
        c = cv.waitKey(50)
        if c == 27:
            break

def get_image_info(image):
    print(type(image))  #type为类型
    print(image.shape)  #shape形状
    print(image.dtype)  #dtype 为数据类型
    print(image.size)   #大小
    pixel_data = np.array(image)
    print(pixel_data)

#读取图片,视频
src = cv.imread('1.jpg')
#cv.imshow("img", src)
Video_demo()
#cv.imwrite("D:/result.png", src)   #保存的地方以及格式
get_image_info(src)
cv.waitKey(0)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值