由于我喜欢使用其他库,我将我的项目从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(使用eclipse构建),这很好用。在Windows下,具有相同名称的第二个窗口的属性将丢失。 - &GT;打开新窗口,类型为“WINDOW_AUTOSIZE”,这意味着resizeWindow命令在此处不起作用。
如何使用每个名称缩小到一个窗口?