【发布时间】:2017-02-13 21:37:26
【问题描述】:
我想使用 OpenCV 加载图像,然后将其显示在窗口上。
我知道如何使用 opencv 加载图像以及如何使用 win32 创建窗口,但是之后如何将 Opencv 中的图像/垫子放在窗口上?
这就是我从 opencv 加载图像的方式:
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
string imageName("C:/image.jpg"); // by default
if (argc > 1)
{
imageName = argv[1];
}
Mat image;
image = imread(imageName.c_str(), IMREAD_COLOR);
if (image.empty())
{
cout << "Could not open or find the image" << std::endl;
return -1;
}
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", image);
waitKey(0);
return 0;
}
编辑:我想这样做的原因实际上不是在运行时创建一个窗口然后在其上显示图像,而是我想使用 win32 的 FindWindow 函数找到一个窗口,然后在其上绘制一个图像:D
【问题讨论】:
-
imshow有什么问题? -
没什么,我只是想知道如何在 win32 窗口上显示来自 opencv 的图像 :)
-
但是……这是一个win32窗口……;)
-
好吧,老实说这是因为我实际上并不想在程序运行时创建一个新窗口来放置图像。我实际上想使用 win32 的 FindWindow 函数找到一个已经存在的窗口,然后在该窗口上绘图:p