• - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!
подписаться на RSS-ленту

3. OpenCV шаг за шагом. Hello World.

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
  • 4 июля 2010, 12:00
  • noonv

Комментарии (3)

RSS свернуть / развернуть
+
0
Здравствуйте!
Хотелось бы узнать, как можно задавать координаты появляющегося окна?
Заранее спасибо.
avatar

Altivolus

  • 3 мая 2012, 19:46
+
0
можно воспользоваться функцией cvMoveWindow()
avatar

noonv

  • 3 мая 2012, 19:57
+
0
Огромное спасибо
avatar

Altivolus

  • 3 мая 2012, 20:08

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.