概述
读入图像:
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’)。
下面的代码是从摄像头中捕获视频,沿水平方向旋转每一帧并保存
好了!今天的内容就到这里了,各位回去之后一定要多多练习!
最后
以上就是贪玩小兔子为你收集整理的计算机视觉-opencv读取图像、视频以及显示保存的全部内容,希望文章能够帮你解决计算机视觉-opencv读取图像、视频以及显示保存所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复