我正在尝试在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);
}
由于这只允许打开设置的图像文件,我如何修改它以便用户选择图像?
这是可能的还是我只能从文件中加载一组图像?
感谢。
答案 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);