因为在网上找了段写入视频的代码,发现最后视频文件大概只有 6KB 左右。到网上搜了下,结果是输入视频帧的高度和宽度没有设置好。
下面代码是我随便整合的,能不能跑我不知道。关键部分就是
cv2.VideoWriter('output.avi',fourcc, 20.0, (fwidth,fheight))
中的 fwidth 和 fheight 要和你原始视频的帧宽度和帧高度一致
import numpy as np
import cv2
(grabbed, frame) = camera.read()
fshape = frame.shape
fheight = fshape[0]
fwidth = fshape[1]
print fwidth , fheight
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (fwidth,fheight))
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,0)
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
以上代码参考 https://stackoverflow.com/questions/29317262/opencv-video-saving-in-python#
下面这段代码来自 https://www.learnopencv.com/read-write-and-display-a-video-using-opencv-cpp-python/,感觉写的很好,大家可以学习下:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
if (cap.isOpened() == False):
print("Unable to read camera feed")
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
out = cv2.VideoWriter('outpy.avi',cv2.VideoWriter_fourcc('M','J','P','G'), 10, (frame_width,frame_height))
while(True):
ret, frame = cap.read()
if ret == True:
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
因为在网上找了段写入视频的代码,发现最后视频文件大概只有 6KB 左右。到网上搜了下,结果是输入视频帧的高度和宽度没有设置好。下面代码是我随便整合的,能不能跑我不知道。关键部分就是cv2.VideoWriter('output.avi',fourcc, 20.0, (fwidth,fheight)) 中的 fwidth 和 fheight 要和你原始视频的帧宽度和帧高度一致import n...
今天的博客是直接来源于我自己的个人工具函数库。
过去几个月,有些PyImageSearch读者电邮问我:“如何获取URL指向的图片并将其转换成OpenCV格式(不用将其写入磁盘再读回)”。这篇文章我将展示一下怎么实现这个功能。
额外的,我们也会看到如何利用scikit-image从URL下载一幅图像。当然前行之路也会有一个常见的错误,它可能让你跌个跟头。
继续往下阅读,学习如何利用利用Python和OpenCV将URL转换为图像
方法1:OpenCV、NumPy、urllib
第一个方法:我们使用OpenCV、NumPy、urllib库从URL获取图像,并将其转换为图像。打开并新建一个文件,
这段代码是一个屏幕录制器,它使用了OpenCV和pyautogui库。它首先定义了一个VideoWriter对象,用于将帧写入视频文件。然后,它使用pyautogui库获取屏幕截图,并将其转换为numpy数组。接下来,它将颜色空间从BGR转换为RGB,并将帧写入视频文件。最后,它使用cv2.imshow()函数显示帧,并检查是否按下了停止录制键。如果按下了停止录制键,则程序将停止录制并释放所有资源。
使用方法:要使用这段代码,您需要安装OpenCV和pyautogui库。您可以使用pip install opencv-python和pip install pyautogui命令来安装这些库。然后,您可以将代码复制到您的Python文件中,并运行它。它将在您的桌面上创建一个名为“YYYY-MM-DD HH-MM-SS.avi”的视频文件,其中YYYY-MM-DD HH-MM-SS是当前日期和时间。要停止录制,请按下“q”键。
save_path = "test.mp4"
fourcc = 'MJPG' # output video codec
fps = vid_cap.get(cv2.CAP_PROP_FPS)
w = int(vid_cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(vid_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
问题:不能读取
视频文件
解决方法:下载解码软件,我下载了对应的ffdshow,
解决问题。 http://sourceforge.jp/projects/ffdshow-tryout/
(注意版本,下载后安装即可,会自动开启)
本系统要实现基于人脸识别的考勤打卡所以使用Python下的Opencv,Flask以及Mysql数据库来实现考勤系统人脸识别验证的功能。首先对Opencv下的LPBH,Eigenfaces和Fisherfaces三种人脸识别算法分别进行模型训练和测试,选用测试结果最好的LBPH算法来实现本系统的人脸识别功能。再使用Flask框架进行系统的web端的搭建,最后使用Mysql进行数据库建设,从而实现完整的人脸识别考勤系统。
使用说明:阅读Readme文档,安装好requirement.txt里面的环境即可使用。
毕设推荐使用!!!
最近项目中需要实现两组图片对比,并能将两者的区别标识出来。
在网上搜索一大堆找到一篇大神的文章,最终实现该功能,在这里记录下:
想要实现此demo,首先我们得确保电脑上已安装 openCV 和 Python 两个工具以及scikit-image和imutils两个库:
安装方法,在这里不多说,我安装的是Python3.6 和openCV2,安装方法网上自行百度谷歌;
进入正题:
新建一个新的Python文件并命名为copmarePicture.py,写入下面的代码:
from skimage.measure import compare_ssim
#~ import skimage as s
使用python实现代码动画视频
最近在CSDN上面看到一个将视频转换为由代码组成的视频,所以想自己写一个。参考的原文博客为:https://blog.csdn.net/hhladminhhl/article/details/118463344
功能:使用python实现将动画转换为有字符组成的视频。
实现方法分为如下几步:
1、将视频从网站上面下载下来
2、将视频截取为GIF,把截取的GIF进行ASCII字符转换
3、将转换好的字符gif根据每一帧的顺序进行重命名,然后排序
4、将排序后的每一帧gi
文章目录前言安装一个小例子最后
之前制作
视频一般都是pr或者是在线制作
视频,然后昨天偶然看到了一个
python的库—moviepy,现在我们可以写代码来制作
视频了。
这个库安装起来很简单,还是老样子pip install moviepy
不过使用windows的话还需要安装ImageMagick,不然
视频制作会报错。
安装ImageMagick的博客
安装好之后就可以慢慢探索这个库的使用了,基本上所有的
视频剪辑操作都有相关的函数,我也发现了不少比较好的博客可以用来学习
moviepy的基本使用
起因是我需要将flv格式的文件转换为mp4
但是找到的视频转换软件都不好使,最后采用的是在anaconda的python中利用ffmpy和FFmpeg进行转换
1. 打开anaconda的命令提示符
依次执行命令
conda install ffmpeg
pip install ffmpy
2. 解决报错:RemoveError: ‘requests’ is a dependency of conda and cannot be removed from conda’s operating enviro
sphereWrite.open("/Users/hfy/Insta360/video/flipVideo/result/FA_render.mp4", cv::VideoWriter::fourcc('D', 'I', 'V', 'X'), outputExporterInfo->fps, cv::Size(outputExporterInfo->width, outputExporterInfo->height));
将第二个参数改成cv::VideoWri.
你可以使用OpenCV中的VideoWriter对象来进行视频的压缩。该对象可以接受多个参数,包括视频编解码器和压缩参数。
下面的示例代码演示了如何使用VideoWriter对象将视频压缩为H.264格式:
```python
import cv2
# 读取原始视频
cap = cv2.VideoCapture('input_video.mp4')
# 获取视频的帧率和分辨率
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建VideoWriter对象并设置编解码器和压缩参数
fourcc = cv2.VideoWriter_fourcc(*'H264')
out = cv2.VideoWriter('output_video.mp4', fourcc, fps, (width, height), True)
# 读取视频帧并进行压缩
while True:
ret, frame = cap.read()
if not ret:
break
# 对视频帧进行压缩
compressed_frame = cv2.resize(frame, (0,0), fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
# 写入压缩后的视频帧
out.write(compressed_frame)
# 释放资源
cap.release()
out.release()
上面的代码中,我们首先从原始视频中获取帧率和分辨率,并创建一个VideoWriter对象。然后,我们使用cv2.resize函数对每个视频帧进行压缩,并将压缩后的视频帧写入输出视频中。最后,我们释放所有资源。
在上面的示例中,我们使用cv2.resize函数对视频帧进行压缩。你可以根据需要调整压缩参数和压缩方法,以获得更好的压缩效果。