opencv 3.4 imshow () открывает второе окно с тем же именем, которое уже было открыто с namedWindow - PullRequest
0 голосов
/ 17 мая 2018

Из-за других библиотек, которые я люблю использовать, я перенес свой проект из Linux Mint 17.2 с Eclipse и OpenCv 3.2.0 на Windows 10 Visual Studio 2017 и OpenCv 3.4.1.Я решил типичные проблемы ОС и смог скомпилировать код.

То, что я сейчас наблюдаю, не должно быть возможным!Следующий код открывает два окна с одинаковыми именами:

    const string RefFrame = "Referenz Frame\0";
    const string MatchFrame = "Matching Frame\0";
    const string FinalFrame = "Transformated Frame\0";
    namedWindow(RefFrame, WINDOW_NORMAL);
    resizeWindow(RefFrame, 600,600);
    namedWindow(MatchFrame, WINDOW_NORMAL);
    resizeWindow(MatchFrame, 600,600);
    namedWindow(FinalFrame, WINDOW_NORMAL);
    resizeWindow(FinalFrame, 600,600);


    bool ready = false;
    vector<Point2f> ListOfPointsInReferenzFrame,   
    ListOfPointsInMatchingFrame;

    while (!ready) {
        ReferenzFrameWithFeature = ReferenzFrame.clone();
        MatchingFrameWithFeature = MatchingFrame.clone();
        this->DrawMatches(RefFrame, ReferenzFrameWithFeature,     ListOfPointsInReferenzFrame);
        this->DrawMatches(MatchFrame, MatchingFrameWithFeature, ListOfPointsInMatchingFrame);

Где "DrawMatches ()" выглядит так:

    void tManualImageMatching::DrawMatches(const std::string WindowName,         cv::Mat &Image, std::vector<cv::Point2f> &ListOfPoints)
    {
        for (int i=0; i < ListOfPoints.size(); i++) {
            circle(Image,cvPoint((int) ListOfPoints[i].x,         (int)ListOfPoints[i].y),20,Scalar(0,0,0),2);//draw circle in point 100,100
        }
        imshow(WindowName, Image);
        resizeWindow(WindowName, 600,600);
    }

В моем коде Linux с opencv 3.2.0 (сборка сзатмение) это отлично работает.Под Windows свойства теряются для второго окна с тем же именем.-> Новое окно открывается с типом «WINDOW_AUTOSIZE», что означает, что команда resizeWindow здесь не работает.

Что я могу сделать, чтобы уменьшить до одного окна с каждым именем?

...