1. OpenCV шаг за шагом. Введение.
2. OpenCV шаг за шагом. Установка.
3. OpenCV шаг за шагом. Hello World.
Напишем стандартный и такой долгожданный Hello World, используя библиотеку OpenCV:
Перейдём сразу к делу, т.е. к коду:
Единственное -не стоит пугаться непонятных функций, постепенно мы их все рассмотрим 😉
#include <cv.h> #include <highgui.h> int main( int argc, char** argv ) { // задаём высоту и ширину картинки int height = 620; int width = 440; // задаём точку для вывода текста CvPoint pt = cvPoint( height/4, width/2 ); // Создаёи 8-битную, 3-канальную картинку IplImage* hw = cvCreateImage(cvSize(height, width), 8, 3); // заливаем картинку чёрным цветом cvSet(hw,cvScalar(0,0,0)); // инициализация шрифта CvFont font; cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,1.0, 1.0, 0, 1, CV_AA); // используя шрифт выводим на картинку текст cvPutText(hw, "OpenCV Step By Step", pt, &font, CV_RGB(150, 0, 150) ); // создаём окошко cvNamedWindow("Hello World", 0); // показываем картинку в созданном окне cvShowImage("Hello World", hw); // ждём нажатия клавиши cvWaitKey(0); // освобождаем ресурсы cvReleaseImage(&hw); cvDestroyWindow("Hello World"); return 0; }
Приведенный пример просто выводит окошко с надписью «OpenCV Step By Step» и после нажатия любой клавиши завершает работу.
Данный пример — это немного модифицированный Hello World из оригинального руководства от Intel-а 🙂
Разберём некоторые функции.
int cvNamedWindow( const char* name, int flags );
— создаёт окно, в которое мы будем выводить наше изображение.
Первый параметр — название окна
Второй — его размер, 0 — даёт возможность изменять размер окна во время выполнения программы, но обычно указывается флаг CV_WINDOW_AUTOSIZE, который указывает, что окно будет ровно тех же размеров, что и загружаемое в него изображение.
void cvShowImage( const char* name, const CvArr* image );
— эта функия собственно и отображает изображение в окне;
первый параметр — название окна для вывода картинки,
второй параметр — изображение для вывода.
int cvWaitKey( int delay=0 );
— эта функция останавливает программу и ожидает нажатия клавиши заданное число миллисекунд и продолжает программу, если ничего не нажато.
Если же, как в нашем случае, параметр функции равен нулю, тогда программа ожидает нажатия клавиши и только потом продолжает работу.
Стандарный пример использования этой функции в цикле обрабоки видеоданных с камеры:
char c = cvWaitKey(33); if (c == 27) { // если нажали ESC - выходим из цикла break; }
void cvReleaseImage( IplImage** image );
— функция освобождает память, выделенную под изображение и устанавливает указатель в NULL.
void cvDestroyWindow( const char* name );
— эта функция закрывает окно и освобождает выделенную память.
Читать далее: 4. OpenCV шаг за шагом. Загрузка картинки
0 комментариев на «“3. OpenCV шаг за шагом. Hello World.”»
Здравствуйте!
Хотелось бы узнать, как можно задавать координаты появляющегося окна?
Заранее спасибо.
можно воспользоваться функциейcvMoveWindow()
Огромное спасибо
День добрый. Сделал всё согласно прошлому пункту (установка), скопипастил HelloWorld! функцию, MSVS выдает ошибки типа «ссылка на неразрешенный внешний символ _cvDestroyWindow в функции _wmain» для всех OpenCV’шных функций.
Что делать?
Среда MSVS C++ 9 2008, OpenCV 2.1.0
забылидобавить в Additional dependencies нужные lib-файлы.2.4.1 😉
PS уже вышла OpenCV
А почему не используется доступ через cv::? Одно и тоже cvPoint и cv::Point?
разумеется, можно использовать интерфейс С++, но я решил рассматривать интерфейс С, а С++-й использовать по необходимости.
К тому же, большинство функций С++-го интерфейса которой просто вызывают C-ые методы.
а планируется обновления туториала под cv 4, где всю сишную апи выпилили?
В планах есть. Пока затрудняюсь сказать — когда дойдут руки.
Добрый день!
А как можно убрать кнопки «закрыть», «свернуть», «развернуть» в правом верхнем углу и название окна?
Подскажите пожалуйста всё вроде так сделал но почему то библиотеку не видит. «Запуск программы не возможен, так как на компьютере отсутствует cxcore200.dll. Попробуйте переустановить программу»
это относится к установке библиотеки. не забыли прописать путь до dll-ок в переменную окружения PATH?как заставить мою программу с OpenCV работать на другом компьютере?
ну а самое простое решение — забросить требуемые dll-ки в директорию к приложению
по теме:
Спасибо, всё получилось
Запуск программы невозможен, так как на компьютере отсутствует MSVCP110D.dll Попробуйте переустановить программу
Что делать? Помогите пожалуйста.
Здравствуйте, начал осваивать Opencv и сразу столкнулся с кучей проблем, неполучилось поставить под виндовс, вроде все делаешь по мануалу, а один фиг не работает =(, в итоге кое как поставил на убунту, этот проект вроде билдидся, но при запуске вылазит ошибка
(Hello World:10523): Gtk-WARNING **: cannot open display:
остальные проекты просто не компилируются(, хотя вставляю просто без изменений, самая расрпостранная ошибка
invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
очень прошу помощи, в программировании я не сильно разбираюсь, новичек, заранее благодарен.
в общем разобрался, это проблема эклипса, если зайти в папку с проектом и самостоятельно запустить то все работет,
тут поподробнее немного
Приветствую, у меня та же проблема, но я не разобрался, можно поподробнее по этой фразе:
«в общем разобрался, это проблема эклипса, если зайти в папку с проектом и самостоятельно запустить то все работет»
Что значит зайта в папку с проектом и самостоятельно запустить?
надо зайти в папку где сохранен сам проект, у меня эта папка workspace/название проекта, далее в папку debug, и запустить исполнительный файл, если проект с ошибками то он не соберется. И файла исполнительного там не будет.
Проверено Win7 x64 VS 2010 OpenCV 2.4.9.
Только нужно «CvFont font;» перенести вверх функции main, иначе VS выдаёт ошибку.