【问题标题】:vb.net character detection from video and extract to imagevb.net 从视频中检测字符并提取到图像
【发布时间】:2020-07-29 15:16:47
【问题描述】:

示例:

文件名:test.mp4
文件时长:46分钟

程序将在 0 分钟到 46 分钟(逐帧)开始扫描
如果视频中有字幕或文本,则捕获该帧并提取到图像

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

有人告诉我,我可以通过 opencv 或 emgucv 做到这一点
但是我不知道该怎么做..那么,你们能给我教程吗?

原图

提取后的图像

【问题讨论】:

    标签: .net vb.net opencv emgucv detection


    【解决方案1】:

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

    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。

    Rectangle rect = new Rectangle(0, 0, frame.Width, frame.Height / 4);
    frame.ROI = rect;
    

    【讨论】:

    • 我可以捕获视频中的所有帧,但我只想要包含字幕的帧,但我不知道包含字幕的帧..所以我想要程序为我做...... ..一键收集视频中的所有帧,包括字幕并提取到图像...先生,可以吗?
    • 您所说的将是对象/文本检测和过滤的混合。您必须分析每一帧并检测文本。尝试研究 Emgucv 中的斑点检测。但是,另一种选择,但需要 Python 中的另一种算法,是 Mask RCNN,您可以在其上训练文本数据集,然后它可以判断哪些帧上有文本。
    猜你喜欢
    • 2016-09-18
    • 2011-08-08
    • 1970-01-01
    • 2015-11-22
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    相关资源
    最近更新 更多