2013-03-18 4 views
1

Я пытаюсь создать простой обработчик изображения в 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); 
} 

Как это только позволяет открыть файл установочного файла, как я могу его изменить, чтобы он мог выбирать изображение?

Возможно ли это, или я могу загрузить только установленное изображение из файла?

Спасибо.

ответ

0

Если вы хотите, чтобы пользователь мог просматривать изображение на своем компьютере, вы можете использовать диалоговое окно открытого файла. Вы можете найти образец on MSDN.

5

Если вы хотите, чтобы ваша программа запускалась только в консоли, пусть пользователь вводит путь к файлу изображения (или может использовать аргументы командной строки).

Если вы хотите сделать это GUI-приложение, (если вы нажмете кнопку «Открыть файл», появится какое-то причудливое окно), то вам нужно научиться программированию на графическом интерфейсе. Выберите какой-то инструмент GUI программирования в зависимости от платформы (Windows, Linux и т.д.) или идти кросс платформы (Попробуйте в Qt)

-1

да возможно

System::String^ managedString; 

managedString= openFileDialog1->FileName; 

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

image = imread(stringPointer); 
+1

ответ кажется неполным (откуда openFileDialog1 исходит из ? Какие библиотеки/включают/... нужны? Это похоже на .NET framework) – Ale

+0

Это не C++, а некоторый диалект, подобный C++/CLI. При ответе на вопросы C++ придерживайтесь C++. –

Смежные вопросы