计算机视觉-opencv读取图像、视频以及显示保存

读入图像:
cv.imread()

				import cv2 as cv
				
				cv.imread("d:/1.png",0)

第一个参数为图片的路径
第二个参数为图片读取方式(0代表灰色,1代表彩色)
图像显示:
cv.imshow()

		`	cv.imshow("input_image",src)
		    cv.waitkey(0)
		    cv.destroyAllWindows

`
第一个参数为窗口名称
第二个参数要显示的图片
cv.waitkey()是一个键盘绑定函数,如果我们把值设置为0,他将一直等待我们键盘输入,可以用来检测是否将某按键按下
cv.destroyAllWindows()表示删除我们创建的所有的窗口
cv.namedWindow()可以设置一个窗口,用来调整窗口的大小
第一个参数为我们要设置的窗口名称
第二个参数为窗口大小调整方式,传入cv.WINDOW_AUTOSIZE代表自动调整,cv.WINDOW_NORMAL表示可以调整窗口大小,当图片维度太大了则会显示出效果
图像保存:
cv.imwrite()
第一个参数为保存的图像名
第二个参数为要保存的图片

			cv.imwrite("1.png",img)

捕获摄像头:
如果要捕获摄像头,我们要创建一个摄像头的对象
cap = cv.VideoCapture(0)
里面参数代表选择笔记本内置摄像头,如果要选择其他摄像头可以设置为1或其他

capture = cv.VideoCapture(0)

while True:
 	ret,frame = capture.read()
	frame = cv.flip(frame,1)
cv.imshow("video",frame)
c = cv.waitKey(50)
if c == 27:
   	break
cv.waitKey(0)
cv.destroyAllWindows("input_image")`

capture.read()返回值为bool类型和图片,如果帧读取正确返回第一个值为True
有时 capture 可能不能成功的初始化摄像头设备。这种情况下上面的代码会报
错。你可以使用 cap.isOpened(),来检查是否成功初始化了。如果返回值是
True,那就没有问题。否则就要使用函数 cap.open()。
你可以使用函数 cap.get(propId) 来获得视频的一些参数信息。这里
propId 可以是 0 到 18 之间的任何整数。每一个数代表视频的一个属性
其中的一些值可以使用 cap.set(propId,value) 来修改,value 就是
你想要设置成的新值。
例如,我可以使用 cap.get(3) 和 cap.get(4) 来查看每一帧的宽和高。
默认情况下得到的值是 640X480。但是我可以使用 ret=cap.set(3,320)
和 ret=cap.set(4,240) 来把宽和高改成 320X240
在这里插入图片描述
从视频文件中读取视频只需要将cv.VideoCapture(0)中的0修改为文件名即可
使用 cv2.waiKey() 设置适当的持续时间。如果设置的太低视
频就会播放的非常快,如果设置的太高就会播放的很慢(你可以使用这种方法
控制视频的播放速度)。通常情况下 25 毫秒就可以了
视频保存:
对于图像的保存,我们只需要cv.imwrite()就可以了
而对于视频的保存我们要首先创建一个VideoWriter的对象,我们应该确定一个输出文件的名字。接下来指定 FourCC 编码(下面会介绍)。播放频率和帧的大小也都需要确定。最后一个是 isColor 标签。如果是 True,每一帧就是彩色图,否则就是灰度图
FourCC 就是一个 4 字节码,用来确定视频的编码格式。可用的编码列表
可以从fourcc.org查到。这是平台依赖的。下面这些编码器对我来说是有用个。
• In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID is
more preferable. MJPG results in high size video. X264 gives
very small size video)
• In Windows: DIVX (More to be tested and added)
• In OSX : (I don’t have access to OSX. Can some one fill this?)
FourCC 码以下面的格式传给程序,以 MJPG 为例:
cv2.cv.FOURCC(‘M’,‘J’,‘P’,‘G’) 或者 cv2.cv.FOURCC(*‘MJPG’)。
下面的代码是从摄像头中捕获视频,沿水平方向旋转每一帧并保存

在这里插入图片描述
好了!今天的内容就到这里了,各位回去之后一定要多多练习!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值