【Golang】使用gocv库编写三帧法
151 字
1 分钟
【Golang】使用gocv库编写三帧法

0x0
三帧法运动检测属于帧间差分法,相关介绍在之前的文章中有介绍。跳转
这次使用Golang的OpenCV库:gocv 跳转 来编写,是最近为了练手gocv而写的第一个demo
0x1
package main
import ( "gocv.io/x/gocv")
func main() { c, err := gocv.VideoCaptureFile("1.mp4") if err != nil { panic(err) } mat := gocv.NewMat() aMat, bMat := gocv.NewMat(), gocv.NewMat() ab, bc := gocv.NewMat(), gocv.NewMat() f := gocv.NewMat() w, err := gocv.VideoWriterFile("test.mp4", c.CodecString(), c.Get(gocv.VideoCaptureFPS), int(c.Get(gocv.VideoCaptureFrameWidth)), int(c.Get(gocv.VideoCaptureFrameHeight)), false)
for c.Read(&mat) { //灰度 gocv.CvtColor(mat, &mat, gocv.ColorBGRToGray) //二值 gocv.Threshold(mat, &mat, 25, 255, gocv.ThresholdBinary) if bMat.Empty() { if aMat.Empty() { mat.CopyTo(&aMat) } else { mat.CopyTo(&bMat) gocv.AbsDiff(aMat, bMat, &ab) } continue } gocv.AbsDiff(bMat, mat, &bc) gocv.BitwiseAnd(ab, bc, &f) w.Write(f) bc.CopyTo(&ab) bMat.CopyTo(&aMat) mat.CopyTo(&bMat) } w.Close()}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
【杂项】使用gocv库实现视频转终端字符画
Golang笔记2021-08-12
2
【Golang】使用CGO交叉编译
Golang笔记2020-04-08
3
【Golang】GO项目结构
Golang笔记2019-06-25
4
【Golang】命令行传递参数
Golang笔记2018-09-13
5
【Golang】1.18泛型初步理解
Golang笔记2022-04-18
随机文章随机推荐















加载更多…