小编sal*_*cia的帖子

使用OpenCV进行多颜色对象检测

我试图检测两个白色墙壁上的红色墙壁和白色方块的图像中的位置,红色顶部和白色"柱子":

在此输入图像描述

我的方法是进行阈值处理以找到我现在可以从输出中轻松检测到的红色墙壁:

在此输入图像描述

现在我的问题是检测白色方块的位置,但考虑到白色墙壁,这更难.如果我基于白色的阈值,我仍然在白色方柱之间保留不需要的白色墙壁.

任何帮助将不胜感激.

c c++ opencv image-processing computer-vision

8
推荐指数
1
解决办法
8441
查看次数

视频序列中车牌的超分辨率

这是我的问题的后续问题:在视频序列中本地增强车牌

我实现了答案建议的基本超分辨率技术,但我无法获得更好的分辨率结果.我将视频序列修剪为40帧,如下所示:在此输入图像描述

并使用下面的代码,它采用前5帧并执行超分辨率,然后通过处理序列中的其余帧重复更新超分辨率帧:

public void Process(Image<Gray, byte> frame)
    {
        SetRegionOfInterest(frame);

        var resizedFrame = ResizeFrame(frame);

        InputFrames.Add(resizedFrame);
        if(InputFrames.Count > 5)
        {
            InputFrames.RemoveAt(0);
            PerformSuperResolution();
        }
    }

    public void PerformSuperResolution()
    {
        // WindowSize = 5
        var referenceFrame = InputFrames[WindowSize-1].Convert<Gray, byte>();
        var featuresToTrack = referenceFrame.GoodFeaturesToTrack(100, 0.1, 5, 10);

        referenceFrame.FindCornerSubPix(featuresToTrack, new Size(WindowSize,WindowSize), new Size(-1,-1), new MCvTermCriteria(20, 0.03d));

        var resultFrame = InputFrames[WindowSize-1].Convert<Gray, double>();
        for(var frameCounter = 0; frameCounter < WindowSize-1; frameCounter++)
        {
            // Get shift between frames
            var shiftResult = GetShiftResult(InputFrames[frameCounter],referenceFrame, featuresToTrack);

            // Warp to correct …
Run Code Online (Sandbox Code Playgroud)

opencv

8
推荐指数
1
解决办法
5146
查看次数

视频序列中车牌的局部增强

我的目标是从给定的图像序列中创建一个具有更易读的车牌号的增强图像,其中驾驶汽车的车牌难以区分,如下面的序列。

在此处输入图片说明

如您所见,车牌号在大多数情况下是无法区分的。我正在研究用于增强多帧超分辨率的实现(正如我在本文中研究的那样:http : //users.soe.ucsc.edu/~milanfar/publications/journal/SRfinal.pdf)。我对 OpenCV 有一些经验,我正在寻求帮助以采取什么方向,或者超分辨率是否真的是解决此类问题的可行选择。

opencv video-processing

6
推荐指数
1
解决办法
1595
查看次数