Как полностью показать 2k видео в imshow opencv - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь проанализировать проблему отслеживания объекта с помощью алгоритма DSST (точная оценка масштаба для отслеживания RobustVisual). Тем не менее, мое тестовое видео 2k, и функция imshow не может показать это ясно. Более того, структура кода из github полностью упакована ... не легко найти код для внесения каких-либо изменений.

Я пытался добавить код

(
//cv::namedWindow(_windowTitle.c_str(), cv::WINDOW_AUTOSIZE);
//cv::resizeWindow(_windowTitle.c_str(),980,600);
)

выше imshow, но на самом деле это не работает, просто измените размер окна, но не можете изменить размер видео.

if (_paras.showOutput)
    {
        Mat hudImage;
        _image.copyTo(hudImage);
        rectangle(hudImage, _boundingBox, Scalar(0, 0, 255), 2);
        Point_<double> center;
        center.x = _boundingBox.x + _boundingBox.width / 2;
        center.y = _boundingBox.y + _boundingBox.height / 2;
        circle(hudImage, center, 3, Scalar(0, 0, 255), 2);

        stringstream ss;
        ss << "FPS: " << fps;
        putText(hudImage, ss.str(), Point(20, 20), FONT_HERSHEY_TRIPLEX, 0.5, Scalar(255, 0, 0));

        ss.str("");
        ss.clear();
        ss << "#" << _frameIdx;
        putText(hudImage, ss.str(), Point(hudImage.cols - 60, 20), FONT_HERSHEY_TRIPLEX, 0.5, Scalar(255, 0, 0));

        if (_debug != 0)
            _debug->printOnImage(hudImage);

        if (!_targetOnFrame)
        {
            cv::Point_<double> tl = _boundingBox.tl();
            cv::Point_<double> br = _boundingBox.br();

            line(hudImage, tl, br, Scalar(0, 0, 255));
            line(hudImage, cv::Point_<double>(tl.x, br.y),
                cv::Point_<double>(br.x, tl.y), Scalar(0, 0, 255));
        }
        //cv::namedWindow(_windowTitle.c_str(), cv::WINDOW_AUTOSIZE);
        //cv::resizeWindow(_windowTitle.c_str(),980,600);
        imshow(_windowTitle.c_str(), hudImage);

        if (!_paras.imgExportPath.empty())
        {
            stringstream ssi;
            ssi << setfill('0') << setw(5) << _frameIdx << ".png";
            std::string imgPath = _paras.imgExportPath + ssi.str();

            try
            {
                imwrite(imgPath, hudImage);
            }
            catch (runtime_error& runtimeError)
            {
                cerr << "Could not write output images: " << runtimeError.what() << endl;
            }
        }
}

Я ожидаю, что выходное видео будет отображаться полностью, так что я смогу найти его в правой зоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...