gocv读取gif多帧图像,mp4视频图像,opencv,VideoCaptureFile,opencv_ffmpeg

news/2024/11/28 18:55:49/
读取GIF图像

opencv中无法读取gif图像,这是由于license原因。转而使用 videocapture 或者第三方的 PIL 库(Python),但是其实Golang的基础库image中就有读取gif图像的。于是一个简单的示例如下

func ReadAndShowGIF(filename string) {w := gocv.NewWindow(filename)f, _ := os.Open(filename)defer f.Close()gi, _ := gif.DecodeAll(f)for k, v := range gi.Image {img, err := gocv.ImageToMatRGB(v)if err != nil {log.Fatal(err)}w.IMShow(img)w.WaitKey(gi.Delay[k] * 10) // delay 单位是百分之一秒,waitkey参数为毫秒}w.WaitKey(0)
}

这里只会播放一遍gif图像,我们还可以解析gif中的LoopCount来增加循环播放的逻辑。

读取mp4视频文件

首先要确保cmake安装的时候成功安装了opencv_ffmpeg_64.dll and opencv_ffmpeg.dll依赖,否则在调用gocv.VideoCaptureFile或者gocv.OpenVideoCapture的时候会报错Error opening file: showimage/video1.mp4

打开opencv编译安装的路径下C:\opencv\build\lib,的确没找到这两依赖,那怎么办呢?

opencv在编译的时候会首先查找当前系统有没有安装ffmpeg,如果没有安装才会去下载安装,但是可能是在下载的时候失败了,所以就没有安装这个依赖,下载失败的日志可以在opencv/build/CMakeDownloadLog.txt找到,因此,我们打开梯子软件,然后重新编译opencv。

读取视频文件使用gocv.VideoCaptureFile(filename)或者gocv.OpenVideoCapture(filename),然后逐帧处理

func ReadAndShowVideo(filename string) {w := gocv.NewWindow(filename)vc, err := gocv.VideoCaptureFile(filename)if err != nil {fmt.Println(err)return}mat := gocv.NewMat()for {if vc.Read(&mat) {w.IMShow(mat)w.WaitKey(10)} else {break}}w.WaitKey(0)
}

其实也可以使用ReadAndShowVideo函数来读取GIF图像,但是不如ReadAndShowGIF控制的更细致。


http://www.ppmy.cn/news/653870.html

相关文章

iNavFlight之MSP DJI协议分析

iNavFlight之MSP DJI协议分析 1. iNav串行口通信1.1 iNav 串口任务1.2 调用逻辑 2. iNav串行抽象2.1 框架代码2.2 MSP(DJI)协议处理 3. DJI协议相关实现3.1 DJI串口初始化3.2 DJI命令集3.3. DJI相关函数 4. 协议格式5. 参考资料 MSP DJI协议主要是为了解决如何将飞控内部信息传…

智能驾驶的狂想与现实落地

编辑导读:随着人工智能的技术发展,很多领域开始了革命式创新,智能驾驶就是其中的一个典型代表。本篇文章中作者介绍了智能驾驶的发展历程以及行业现状,并且通过分析智能驾驶的具体技术设计,预测了其未来发展趋势。 从1…

DIY无人机组装与飞控参数调试记录(DJI NAZA-LITE)

早就想玩一玩无人机,奈何各种原因一直没有机会,工作之后资金富足,加上本身工作和这个相关性比较大,于是就自己DIY了一台无人机。 一.材料准备: F450机架 GPS支架 好盈乐天 20A电调4个 YH2212 自锁电机4个 大疆NAZ…

硬核复工|赛尔联合大疆云课堂,助力测绘人研究“农房一体化”项目

2月27日,DJI大疆《平民化航测公开课》开讲。这是一场汇聚航测领域实力大咖、解决方案工程师、UTC高级慧飞讲师、资深航测飞手的“知识盛宴”。在新型冠状病毒肺炎疫情防控的关键时刻,在线云课堂让饱含激情的测绘人足不出户,也能赋能无人机航测…

7999元大疆最新无人机,支持第一人称视角极速拍摄,直接起飞

穿越山口、过火圈,体验2秒加速到100公里的急速飞行: 可以从第一视角体验拍摄效果,“就像是开启了第三只眼”: 而且,只需要靠手部动作“单手操作”,就能操控: 这是大疆最新推出的FPV无人机&#…

树莓派+无人机Tello+计算棒实时飞行检测实现

硬件 树莓派3b、 无人机telllo、 ubuntu 主机 软件 大疆tello sdk,按说明测试Tello_video 在主机上视频传输功能,树莓派安装openvino计算棒环境,树莓派中测试检测算法第五个。 方案 因为使用树莓派+计算棒2代+无人机tello实时检测时,树莓派无法完成实时h246数据解码任务…

UAV012_V2(二):无人机姿态解算(深入篇)

写这篇博客,已经是第三次了,花了一个周,一遍遍修改,只为了理解好姿态解算并表述出来。 之前写过一篇姿态解算的博客,UAV021(四):飞控传感器数据融合与姿态估计,在小角度…

python练习——识别大疆无人机照片的属性信息,读取经纬度、拍照时间等,并将经纬度转换为模糊地址

由于项目需要,有必要对无人机排到的高清照片做处理,为此,需要将照片属性中的经纬度、时间等信息提取出来,不知道怎么搞,就从网上找了找,参考借鉴基础上,居然调通了。 发出来,记录一下,方便今后查阅,同时也分享给大家,踩了一些坑。 总共拿了两张照片测试,如下图所…