python下openCv学习笔记(一)图像的介绍,图像或视频的打开和保存,网络摄像头的打开和保存

python下openCv学习笔记(一)图像的介绍,图像或视频的打开和保存

运行环境:win10 ,pycharm ,python =3.6 ,openCV=3.4.1

图像的介绍

我们可以用一个二维数组(矩阵)的形式来表现一个图像。一个格子一个格子的称之为像素。譬如较为常见的1920*1080,这就是指一个图像宽有1920个格子,高度有1080个格子。2k,4k类推。
在图像中,有黑白色的灰度图像也有彩色图像。在黑白色的灰度图像中,他的通道数是1,也就是他是灰度图像的原因,灰度有256阶,用0~255表示(0是黑色,中间是不同程度的灰色,255是白色)。一般的彩色的图像则是有三个通道,分别为RGB,他们叠加在一起形成了各种色彩的彩色图像。

以1920 * 1080举例。灰度图像的像素有1920 * 1080,而彩色图像因为是三个通道叠加,他的像素则有1920 * 1080 * 3

以上就是图像基础的介绍

图像的打开,展示

import cv2

img = cv2.imread("img/test.jpg")   #图像在项目的img文件夹里,打开图像,并且以矩阵形式保存到img中
cv2.imshow("firstimg",img)	#展示图像,两个参数,第一个指程序运行后窗口的名称,第二指保存图像的img
cv2.waitKey(0)				#等待键盘输入,理解为延迟,一个参数,以毫秒为单位,0则表示一直等待
cv2.destroyAllWindows() #销毁窗口,释放内存,学习自用项目这句可有可无,刚学未体会到用处

听说有些版本的路径会报错,报错的可以试一试全路径

视频的打开,展示

import cv2

cap = cv2.VideoCapture("video/test.mp4")     #VideoCapture方法打开视频
while True:
    success,video = cap.read()  
    cv2.imshow("video",video)
    cv2.waitKey(1)

视频可以理解为一张张图片,因此需要循环来一帧一帧打开。用bool来判断是否打开下一帧。
这种方法打开的视频没有声音,加速播放。只可以走pycharm中停止项目或者任务管理器才可以关闭,插不掉。这里不能有destroyAllWindows()方法,不然会一直关闭打开关闭打开。

import cv2

cap = cv2.VideoCapture("video/test.mp4")  
while True:
    success,video = cap.read() 
    cv2.imshow("video",video)
    if cv2.waitKey(1) & 0xFF ==ord('q'):
        break

此方法增加了个按键关闭,英文输入法下按下q则可以break 进行关闭。

摄像头的打开,展示

将视频中的cap = cv2.VideoCapture(‘video/test.mp4’) 修改为cap = cv2.VideoCapture(0) 则可以打开默认的摄像头,如果有多个摄像头则输入摄像头的ID(我没有进行尝试),其余代码一致。
如果需要对打开的窗口进行优化则可以设置窗口的高度 宽度,亮度等等。

import cv2

cap = cv2.VideoCapture(0)
cap.set(3,400)    #3指的是 摄像头窗口的宽度,400即大小
cap.set(4,400)    #4指的是 摄像头窗口的高度
cap.set(10,100)    #10指的是 摄像头窗口的亮度 

while True:
    success,video = cap.read() 
    cv2.imshow("video",video)
    if cv2.waitKey(1) & 0xFF ==ord('q'):
        break

保存(输出)

cv2.imwrite("img/output.jpg",img)

第一个参数指的是保存的路径和名称,即保存在工程的img文件夹下,保存为output.jpg,第二个参数指的是保存的数据,即前面例子的img。

关于视频的保存,使用的是VideoWriter方法,但由于保存的视频无法打开,故不做说明,我也试过多种方法,均为成功(可能是电脑没有解码器?管他呢,我先把图片搞懂,这才刚开始学)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值