C++ 如何显示窗口大小不同的输出图像?通过使用cv::Mat

C++ 如何显示窗口大小不同的输出图像?通过使用cv::Mat,c++,opencv,C++,Opencv,据 我想使用OpenCV函数在窗口上显示图像。然而,任何时候,我试图显示图像将适合显示器的大小 如果我想显示窗口大小不同的图像(例如,窗口大小为1280x960px,偏移坐标为100x100px的图像为600x600px),我该如何制作它们 然而,根据前面的问题,我想使用cv::Mat(C++API)如何创建它们 谢谢你的帮助 cv::Mat smallImage = cv::imread("myimage.jpg"); cv::Mat bigWindow = cv::Mat::zeros(96

我想使用OpenCV函数在窗口上显示图像。然而,任何时候,我试图显示图像将适合显示器的大小

如果我想显示窗口大小不同的图像(例如,窗口大小为1280x960px,偏移坐标为100x100px的图像为600x600px),我该如何制作它们

然而,根据前面的问题,我想使用cv::Mat(C++API)如何创建它们

谢谢你的帮助

cv::Mat smallImage = cv::imread("myimage.jpg");
cv::Mat bigWindow = cv::Mat::zeros(960,1280, smallImage.type());

cv::Rect r(0,0,smallImage.cols, smallImage.rows);
cv::Mat roi = bigWindow(r);
smallImage.copyTo(roi);
cv::namedWindow("Display"); // cv::namedWindow("Display", 0); if you want to be able to  resize window
cv::imshow("Display", bigWindow);
cv::waitKey(0);
你在上一个问题中得到了答案。现在,如果您想进一步使用OpenCV,您必须阅读


你在上一个问题中得到了答案。现在,如果您想进一步使用OpenCV,您必须阅读

谢谢你的回答@remi,然而,我尝试了你的例子,但仍然没有工作,我也做了同样的方式作为你的代码之前,我试图谷歌和询问在这个网站上。图像仍然只显示黑屏,但如果我显示“roi”(例如,imshow(“Display”,roi))图像就会出现。它不是编译吗?忘记了函数cv::Mat::zeros中的type()信息。现在,这是一个经过测试、编译和运行的程序,您可以将其放入一个主程序中。如果不起作用,请将完整代码添加到问题中,确保您阅读的图像和“bigWindow”矩阵的类型相同,在创建大窗口时使用smallImage.type()。我知道了。。。是的,因为他们之间矩阵的类型不同,我改变了它并工作了!谢谢你的帮助,但是我会在提问之前阅读文档。谢谢你的回答@remi,但是,我尝试了你的例子,但仍然没有工作,我也用了与你的代码相同的方法,然后我尝试在这个网站上搜索和提问。图像仍然只显示黑屏,但如果我显示“roi”(例如,imshow(“Display”,roi))图像就会出现。它不是编译吗?忘记了函数cv::Mat::zeros中的type()信息。现在,这是一个经过测试、编译和运行的程序,您可以将其放入一个主程序中。如果不起作用,请将完整代码添加到问题中,确保您阅读的图像和“bigWindow”矩阵的类型相同,在创建大窗口时使用smallImage.type()。我知道了。。。是的,因为他们之间矩阵的类型不同,我改变了它并工作了!谢谢你的帮助,不过我会先看一下文件再问。