OpenCV让用户选择打开图像

时间:2013-03-18 10:58:23

标签: c++ opencv

我正在尝试在opencv中创建一个简单的图像处理器。到目前为止,我已尝试使用此代码从文件中打开设置图像。

#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    Mat im = imread("c:/image.jpg");
    if (im.empty()) 
    {
        cout << "Cannot load image!" << endl;
        return -1;
    }
    imshow("Image", im);
    waitKey(0);
}

由于这只允许打开设置的图像文件,我如何修改它以便用户选择图像?

这是可能的还是我只能从文件中加载一组图像?

感谢。

3 个答案:

答案 0 :(得分:5)

如果您希望程序仅在控制台中运行,请让用户输入图像文件的路径(或者可以使用命令行参数)。

如果你想使它成为GUI应用程序(当你点击“打开文件”按钮时会出现一些奇特的窗口),那么你必须学习一些GUI编程。根据您的平台(Windows,Linux等)选择一些GUI编程工具,或者选择跨平台(试试Qt)

答案 1 :(得分:0)

如果您希望用户能够在其计算机上浏览图像,则可以使用“打开文件”对话框。您可以找到示例on MSDN

答案 2 :(得分:-1)

是的,这是可能的

System::String^ managedString;

managedString= openFileDialog1->FileName;

string stringPointer=marshal_as<std::string>(managedString);

image = imread(stringPointer);