OpenCV


UPD Уроки по OpenCV: OpenCV шаг за шагом. Введение.

OpenCV (Open Source Computer Vision) — библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на C/C++.

Сначала скачал последнюю версию с sourceforge.net/projects/opencvlibrary/OpenCV_1.1pre1a.exe
сначала не могли найтись dll-ки, пока не прописал в system PATH

C:\program files\opencv\bin

после этого компиляция и линковка проходят нормально, но при запуске exe-ка — вываливается ошибка
возможно нужен VC80.CRT , но я снёс 1.1, поставил 1.0 и всё сразу заработало 🙂

Простой тестовый пример, просто выводит изображение с web-камеры 🙂

// test.cpp
//

#include "stdafx.h"

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

#include <iostream>
using namespace std;


//#pragma comment(lib, "cxcore.lib")
//#pragma comment(lib, "cv.lib")
#pragma comment(lib, "highgui.lib")
//#pragma comment(lib, "cvaux.lib")

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
// TODO: Place code here.
// Инициализируем источник наших изображений.
// В данном случае - это видеокамера, подключенная по 
// одному из интерфейсов. 0 означает, что надо
// выбрать первую попавшуюся камеру. У нас их одна,
// поэтому не стоит волноваться по этому поводу :)
 CvCapture* capture = 0;
 capture = cvCreateCameraCapture(0);
 if (!capture)
 {
  cout << "Initialization failed" << endl;
  return EXIT_FAILURE;
 }

 // Работа с GUI упрощена до невозможного. Необходимо
 // определить идентификатор (по совместительству -
 // заголовок окна), по которому мы будем определять
 // наши окна.
 const char *windowName = "First steps with OpenCV";
 cvNamedWindow(windowName, CV_WINDOW_AUTOSIZE);

 while(true) 
 {
  // Опрашиваем камеру для получения следующего кадра
  IplImage* frame = cvQueryFrame( capture );
  if(!frame) 
   break;

  // processFrame(frame);

  // Отобразим наш фрейм в окне (не забыли, как мы его
  // определили? - через идентификатор)
  cvShowImage(windowName, frame);

  // По нажатию ESC - выход из цикла
  char c = cvWaitKey(33);
  if (c == 27) 
   break;
 }

 // Никогда не забываем освобождать память!
 cvReleaseCapture( &capture );
 cvDestroyWindow(windowName);

 return 0;
}

Ссылки
opencv.willowgarage.com


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение