2014-10-15 3 views
0

Как обрабатывать большие (> 15000x15000) изображения без изменения размера?Обработка больших изображений в OpenCV

Что мне нужно достичь: получить значение пикселя (x, y, r, g, b) при наведении курсора мыши. Поэтому изменение размера изображения в соответствии с экраном не является вариантом.

Я попытался найти возможность добавлять полосы прокрутки, но не нашел их. У меня также возникла идея показать фиксированный размер окна со 100% размером изображения и перетащить изображение вокруг, но я понятия не имею, как это сделать.

Я также попытался построить OpenCV с QT (как видно here), но потерпел неудачу с несчастью (несчетные предупреждения CMake).

Окружающая среда: Win 7, VS2013, C++, OpenCV 3,0

+0

Предупреждения cmake не являются ошибками компилятора. Вы пытались скомпилировать его? – Jepessen

+0

как настроить, так и сгенерировать не удалось (я использую GUI) – JonasT

+1

Opencv highgui не предназначен для использования в качестве решения для каждой проблемы, а для быстрого и грязного gui для проверки ваших вещей. Используйте какую-то реальную библиотеку gui для своей задачи отображения или узнайте winapi, чтобы изменить окно opencv для ваших нужд. – Micka

ответ

2

Это на самом деле не проблема OpenCV. Мое предложение состоит в том, что вы используете инфраструктуру графического интерфейса пользователя по своему усмотрению, чтобы решить эту проблему. Qt был бы очень подходящим вариантом, и у него есть хорошая польза в том, что интеграция между OpenCV и Qt хороша.

  1. Попробуйте построить OpenCV с включенным Qt. Вы не указали информацию о том, что пошло не так, и ссылка вообще не упоминает об установке. Но поиск предупреждений CMake или попытка выяснить, как установить Qt в Windows, не должно быть слишком сложной задачей.
  2. Посмотрите на отображение очень больших изображений с помощью Qt. У него есть все, что вам нужно. Быстрый поиск найдено this SO ответ, который рекомендует QGraphicsView.

  3. Если у вас достаточно памяти для хранения изображения 15k x 15k в нем, вам не нужно использовать QGraphicsView и тайлинг. Как уже упоминалось, here, вероятно, вы должны использовать QPixmap, а затем искать RGB-координаты по второму методу.

Если память является проблемой

Here является запись (немного старых) о том, как загрузить изображение только частично, то есть не полностью в память. Помните о существовании QImageReader.

+0

Я выполнил следующие шаги: http://answers.opencv.org/question/22816/how-to-set-the-path-to-qt5-in-cmake/?answer=22817#post-id-22817 и он успешно строить. Что мне теперь делать? моя текущая программа по-прежнему не отображает QT UI – JonasT

+0

«... и она успешно работает. Что мне теперь делать? Моя текущая программа по-прежнему не отображает интерфейс QT« Вы не ожидаете, что я смогу ответить на это, не так ли? – Unapiedra

+1

хорошо, это было ужасно, чтобы сделать + сборку, но она, наконец, сработала. также как-то #include перезаписывает qt gui по умолчанию – JonasT

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