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:breakdef 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)
opencv学习笔记及复习(二)读取摄像头以及获取图片类型相关推荐
- OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器
OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此 ...
- Silverlight学习笔记十七BingMap(六)之获取图片系统的图片信息ImageryService的应用...
BIngMap的ImageryService服务是一个微软发布的WCF服务,它用来获取图片系统的图片信息.服务地址:http://dev.virtualearth.net/webservices/v1 ...
- opencv学习笔记及复习(四)物体追踪及人体肤色追踪
一.BGR颜色空间 在opencv中,硬件所使用的颜色顺序为BGR,而非RGB,虽然排序有所不同,但是在进行图像操作的时候会有很大的区别,BGR颜色空间分别对应蓝.绿.红:这三种颜色的排列组合可以组成 ...
- openCV学习笔记(十二) —— 人脸识别算法(1/3)—— 特征脸 EigenFaces
一.原理 opencv支持3种人脸识别的算法,分别是: 1. Eigen Faces PCA(特征脸方法) 2. Fisher Faces LDA(线性判别分析) 3. ...
- OpenCV学习笔记(十二)之USM图像锐化
一.图像锐化原理 图像锐化,是使图像边缘更加清晰的一种图像处理方法,说白了就是让图像的边缘看起来更加清晰明了.其原理主要就是利用图像的高频分量来实现的,将原图像的高频分量提取出来,再和原图像按一定 ...
- Python OpenCV学习笔记之:图像读取,显示及保存
为什么80%的码农都做不了架构师?>>> #-*- coding: utf-8 -*- # 读取,保存,显示图片 import cv2 as cv# 读取为灰度图片 img = ...
- 【opencv学习笔记】005之读像素(获取像素)及写像素(修改像素、空白图像、分割图像)
目录 一.前言 二.图像像素操作 1.读像素 2.写像素 三.全部代码及结果展示 1.代码 2.运行效果图 一.前言 欠下的总是要还的,继续给大家更新有关于OpenCV的教程,我也不知道能不能保证每天 ...
- Opencv学习笔记 离散傅立叶变换(DFT)简介及用于图片方向校正
离散傅里叶变换(Discrete Fourier Transform,缩写为DFT),是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样.在形式上,变换两端(时域和频 ...
- OpenCV学习笔记(十一)(十二)(十三)(十四)(十五)
OpenCV学习笔记(十一)--谈谈像素的类型和对Templates的限制使用 Templates是c++的一个很强大的特征,可以是数据结构更加安全高效.但也会增加编译时间和代码的长度,当函数被频繁调 ...
最新文章
- 基于 EntityFramework 的数据库主从读写分离架构(1) - 原理概述和基本功能实现...
- nginx模型概念和配置文件结构
- RAC安装时需要执行4个脚本及意义
- python 写 log
- 2022年4月8日体检
- jax-rs jax-ws_在JAX-RS中使用@Context [第1部分]
- wap(dopra linux )命令,运营商定制的华为光猫Telnet命令恢复华为界面
- ASP.NET MVC 使用Swagger需要注意的问题!!!
- LwIP之套接字接口
- 女程序员在这里落脚啦
- APP搜索如何又快又准?
- 【生活智慧】001.追求实在的东西
- tuio+ 图片拼接软件制作方法
- 循环实现自动售货机的学习笔记
- python百度经纬度转google经纬度
- 2022N1叉车司机考试练习题及在线模拟考试
- 51单片机非阻塞串口中断收发数据
- 计算机无法显示输入字体,电脑中ps输入字体不显示是怎么回事
- Python语音合成探究(三、合成语音的输出及文字同步显示)
- 【Set】01-set参数