Из-за других библиотек, которые я люблю использовать, я перенес свой проект из 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 здесь не работает.
Что я могу сделать, чтобы уменьшить до одного окна с каждым именем?