首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视频中的vb.net字符检测与图像提取

视频中的vb.net字符检测与图像提取
EN

Stack Overflow用户
提问于 2020-04-16 11:37:13
回答 1查看 542关注 0票数 2

示例:

文件名: test.mp4

档案持续时间:46分钟

程序将在0分钟到46分钟(逐帧)开始扫描。

如果视频上有字幕或文字,请捕获该帧并提取到图像中。

不是OCR,只是捕捉和提取图像

有人告诉我我可以用opencv或emgucv来做

但我不知道该怎么做。你们能给我辅导一下吗?

原始图像

图像提取后

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-16 13:11:37

您可以使用Emgucv中的视频流,并捕获您想要的帧。

代码语言:javascript
复制
private List<Image<Bgr, Byte>> GetVideoFrames(String Filename)
{
        List<Image<Bgr, Byte>> image_array = new List<Image<Bgr, Byte>>();
        Capture _capture = new Capture(Filename);
        double totalFrames = _capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_COUNT);
        double fps = _capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FPS);
        double frameNumber = 0.0;

        bool Reading = true;

        while (Reading)
        {
            _capture.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_POS_FRAMES, frameNumber);
            Image<Bgr, Byte> frame = _capture.QueryFrame();
            if (frame != null)
            {
                //image_array.Add(frame.Copy());

                //frame.Save(OutFileLocation + "\\" + Guid.NewGuid() + ".jpg");

                frame.Save(OutFileLocation + "\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg");
            }
            else
            {
                Reading = false;
            }

            frameNumber += (fps * TimeDiff);
        }

        return image_array;
}

如果您想要将图像裁剪为只包含标题,那么您可以只使用roi。

代码语言:javascript
复制
Rectangle rect = new Rectangle(0, 0, frame.Width, frame.Height / 4);
frame.ROI = rect;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61249294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档