opencv учебник
Начало работы с opencv
Поиск…
замечания
В этом разделе представлен обзор того, что такое opencv, и почему разработчик может захотеть его использовать.
Следует также упомянуть о любых крупных предметах в opencv и ссылаться на связанные темы. Поскольку документация для opencv нова, вам может потребоваться создать начальные версии этих связанных тем.
Версии
OpenCV 3
Версия | Дата выхода |
---|---|
3,2 | 2016-12-23 |
3,1 | 2015-12-18 |
3.0 | 2015-06-03 |
3.0 RC1 | 2015-04-23 |
3,0 бета | 2014-11-07 |
3,0 альфа | 2014-08-21 |
OpenCV 2
Версия | Дата выхода |
---|---|
2.4.13 | 2016-05-19 |
2.4.12 | 2015-07-30 |
2.4.11 | 2015-02-25 |
2.4.10 | 2014-10-01 |
2.4.9 | 2014-04-14 |
2.3.1 | 2011-08-17 |
2.3.0 | 2011-07-04 |
2.2.0 | 2010-12-05 |
2.1.0 | 2010-04-06 |
2.0.0 | 2009-10-01 |
1.0.0 | 2006-10-19 |
Загрузите и покажите изображение с помощью OpenCV
В этом примере мы увидим, как загрузить цветное изображение с диска и отобразить его с помощью встроенных функций OpenCV. Для этого мы можем использовать привязки C / C ++, Python или Java.
В C ++:
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
int main(int argc, char** argv) {
// We'll start by loading an image from the drive
Mat image = imread("image.jpg", CV_LOAD_IMAGE_COLOR);
// We check that our image has been correctly loaded
if(image.empty()) {
std::cout << "Error: the image has been incorrectly loaded." << std::endl;
return 0;
}
// Then we create a window to display our image
namedWindow("My first OpenCV window");
// Finally, we display our image and ask the program to wait for a key to be pressed
imshow("My first OpenCV window", image);
waitKey(0);
return 0;
}
В Python:
import sys
import cv2
# We load the image from disk
img = cv2.imread("image.jpg", cv2.CV_LOAD_IMAGE_COLOR)
# We check that our image has been correctly loaded
if img.size == 0
sys.exit("Error: the image has not been correctly loaded.")
# We create a window to display our image
cv2.namedwindow("My first OpenCV window")
# We display our image and ask the program to wait until a key is pressed
cv2.imshow("My first OpenCV window", img)
cv2.waitKey(0)
# We close the window
cv2.destroyAllWindows()
В Java:
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.highgui.Highgui;
public class Sample{
public static void main (String[] args) {
//Load native opencv library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//Read image from file first param:file location ,second param:color space
Mat img = imread("image.jpg",CV_LOAD_IMAGE_COLOR);
//If the image is successfully read.
if (img.size() == 0) {
System.exit(1);
}
}
У HighGui нет именованных окон или эквивалентов imshow в opencv java. Используйте swing или swt для отображения изображения.
Создайте и установите OpenCV из источника
Это пошаговое руководство по установке OpenCV 3 в Linux-системе Debian из источника. Шаги должны оставаться неизменными для других дистрибутивов, просто замените соответствующие команды диспетчера пакетов при установке пакетов для сборки.
Примечание. Если вам не нравится тратить время на создание материала или не нравится терминал, вы, скорее всего, можете установить OpenCV из графического интерфейса диспетчера пакетов Synaptic. Однако эти библиотеки часто устаревают.
Подготовьтесь к сборке
Для установки необходимых пакетов выполните следующие команды в своем терминале:
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config \
libavcodec-dev libavformat-dev libswscale-dev
Следующие пакеты являются необязательными:
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev \
libpng-devlibtiff-dev libjasper-dev libdc1394-22-dev
Выполните следующую команду, чтобы получить исходный код OpenCV и подготовить сборку:
mkdir ~/src
cd ~/src
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build && cd build
Создание и установка
Мы включаем примеры в сборку, но не стесняемся их оставлять. Также не стесняйтесь устанавливать другие флаги и настраивать свою сборку по своему усмотрению.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON ..
Если CMake не сообщал о каких-либо ошибках или недостающих библиотеках, продолжайте сборку.
make -j$(nproc)
Если ошибок не было, мы можем продолжить установку OpenCV в систему:
sudo make install
Теперь OpenCV должен быть доступен вашей системе. Вы можете использовать следующие строки, чтобы узнать, где был установлен OpenCV и какие библиотеки были установлены:
pkg-config --cflags opencv # get the include path (-I)
pkg-config --libs opencv # get the libraries path (-L) and the libraries (-l)
Тестирование
Сначала мы создаем примеры на C ++:
cd ~/src/opencv/samples
cmake .
make
Если ошибок не было, запустите любой образец, например
./cpp/cpp-example-edge
Если образец запускается, то библиотеки C ++ будут правильно установлены.
Затем проверьте привязки Python:
python
>> import cv2
>> print cv2.__version__
Если эти команды импортируют OpenCV и печатают правильную версию без жалоб, тогда привязки Python будут правильно установлены.
Поздравляем, вы только что создали и установили OpenCV. Счастливое программирование!
Для Mac см. Здесь Установка OpenCV в Mac OS X
Привет, мир в Java
Изображение OpenCv, прочитанное из файловой системы в Java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class Giris {
public static void main(String[] args) {
//Load native library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//image container object
Mat imageArray;
//Read image from file system
imageArray=Imgcodecs.imread("C:\\Users\\mesutpiskin\\sample.jpg");
//Get image with & height
System.out.println(imageArray.rows());
System.out.println(imageArray.cols());
}
}
Получить изображение с веб-камеры
Отображение живого видеопотока, взятого с веб-камеры, с использованием класса VideoCapture от OpenCV с Java, C / C ++ и Python.
Джава
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.videoio.VideoCapture;
public class Camera {
public static void main(String[] args) {
// Load Native Library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// image container object
Mat imageArray = new Mat();
// Video device acces
VideoCapture videoDevice = new VideoCapture();
// 0:Start default video device 1,2 etc video device id
videoDevice.open(0);
// is contected
if (videoDevice.isOpened()) {
// Get frame from camera
videoDevice.read(imageArray);
// image array
System.out.println(imageArray.toString());
// Release video device
videoDevice.release();
} else {
System.out.println("Error.");
}
}
}
C ++
#include "opencv2/opencv.hpp"
#include "iostream"
int main(int, char**) {
// open the first webcam plugged in the computer
cv::VideoCapture camera(0);
if (!camera.isOpened()) {
std::cerr << "ERROR: Could not open camera" << std::endl;
return 1;
}
// create a window to display the images from the webcam
cv::namedWindow("Webcam", CV_WINDOW_AUTOSIZE);
// this will contain the image from the webcam
cv::Mat frame;
// capture the next frame from the webcam
camera >> frame;
// display the frame until you press a key
while (1) {
// show the image on the window
cv::imshow("Webcam", frame);
// wait (10ms) for a key to be pressed
if (cv::waitKey(10) >= 0)
break;
}
return 0;
}
питон
import numpy as np
import cv2
# Video source - can be camera index number given by 'ls /dev/video*
# or can be a video file, e.g. '~/Video.avi'
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
Начало работы с OpenCV 3.1 в Windows
Мы устанавливаем OpenCV 3.1.0 в Windows и начинаем работу. Существует два способа установки OpenCV на окна. Один из них - загрузить установщик и запустить его. Другое - строить из источника.
Это самый простой способ установить OpenCV и начать работу. OpenCV дает предварительно сборку бинарные файлы для установки на Windows , здесь . После завершения загрузки загрузите его и установите по выбранному пути.
ProTip: Убедитесь, что ваш путь OpenCV не содержит пробелов. Итак, лучше, если вы просто установите его в каталог C: \ или D: \ root
Проблема с указанным выше методом заключается в том, что вы не можете использовать модули opencv_contrib. Кроме того, он не поставляется со всеми сторонними инструментами и библиотеками. Итак, если вы хотите использовать все это, просто следуйте за ним.
Я объясню наименьший минимум, чтобы установить OpenCV из источника. Для более продвинутого, см. Здесь .
- Установите CMake .
- Клонировать источник OpenCV от https://github.com/Itseez/opencv.git в некотором каталоге, который не имеет пробелов. Позволяет называть его «OpenCVdir».
- Теперь откройте CMake GUI и добавьте исходный каталог (OpenCVdir) в меню «Источники» и создайте каталог в меню сборки. Совет. Если каталог сборки отсутствует, создайте его в папке opencv.
- Нажмите «Настроить» и выберите версию компилятора Visual Studio. У меня была Visual Studio 2013 Professional 32-бит, поэтому я выбрал компилятор Visual Studio 12.
Совет. Вы можете скачать Visual Studio 2013 Professional здесь. Он поставляется с пробной пробкой в течение 30 дней + расширенный маршрут продолжительностью 90 дней после входа в систему.
- Нажмите Finish, и CMake автоматически загрузит все пакеты. Вы можете добавлять или удалять пакеты. Нажмите «Настроить» еще раз.
- Если вы хотите создать дополнительные модули opencv_contrib, вам необходимо загрузить их здесь . Затем извлеките их и добавьте каталог opencv_contrib / modules в ваш CMake, как показано ниже.
- Теперь нажмите Configure еще раз, а затем нажмите Generate.
- Закрыть CMake. Перейдите в папку your_opencv \ build и откройте файл с именем «OpenCV.sln». - Он откроет Visual Studio. Теперь запустите его как в Debug режим и выпуск Режим.
- Теперь, в проводнике решений в правом верхнем углу вашей Visual Studio, выберите «УСТАНОВИТЬ проект» и постройте его.
Ура!! Наслаждайтесь OpenCV.
Добавление каталога OpenCV в переменную PATH переменных среды:
Перейдите в раздел «Свойства системы» и нажмите «Дополнительные параметры системы».
Здесь добавьте папку bin, расположенную в вашей OpenCVdir / build / install / x86 / vc ** / bin, к этой переменной. Будьте осторожны, чтобы не заменить существующие значения Path.
После этого вам нужно перезапустить систему для изменения переменных среды, и теперь вы готовы к работе.
Что и почему OPENCV?
OpenCV (Open Source Computer Vision Library) представляет собой библиотеку программного обеспечения для компьютерного зрения с открытым исходным кодом и компьютерного обучения. Он был построен для различных целей, таких как машинное обучение, компьютерное зрение, алгоритм, математические операции, захват видео, обработка изображений и т. Д. На протяжении многих лет он стал очень популярен среди исследователей и разработчиков как для поддержки на разных платформах (Windows, Linux , android, ios). Также он имеет обертку на разных известных языках программирования. В соответствии с лицензионным соглашением у него есть доступ к компаниям для использования и изменения кода.
Библиотека содержит более 2500 оптимизированных алгоритмов, которые имеют отличную точность в производительности и скорости. Эти алгоритмы могут использоваться для обнаружения и распознавания лиц, идентификации объектов, классификации действий человека в видео, отслеживания движения камеры, отслеживания движущихся объектов, извлечения 3D-моделей объектов, создания 3D-облаков точек из стереокамер, сшивания изображений вместе для получения высокого разрешения изображение всей сцены, найти похожие изображения из базы данных изображений, удалять красные глаза с изображений, сделанных с помощью вспышки, следить за движениями глаз, распознавать декорации и устанавливать маркеры, чтобы накладывать их на дополненную реальность и т. д. В OpenCV есть отличные люди и сообщество, , разработчиками и исследователями, их число составляет более 47 тысяч, а количество загрузок превышает 7 миллионов. Библиотека обширна в профессиональных компаниях, исследовательских группах и других группах.
Многие известные компании, такие как Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota, используют библиотеку, есть много стартапов, таких как Applied Minds, VideoSurf и Zeitera, которые широко используют OpenCV. Развернутые применения OpenCV охватывают диапазон от сшивания изображений уличного обзора вместе, обнаруживая вторжения в видео наблюдения в Израиле, контролируя оборудование шахт в Китае, помогая роботам перемещаться и собирать объекты в Willow Garage, обнаруживать несчастные случаи в бассейнах в Европе, запускать интерактивное искусство в Испания и Нью-Йорк, проверяя взлетно-посадочные полосы для мусора в Турции, проверяя этикетки на продуктах на заводах по всему миру, чтобы быстро обнаружить лицо в Японии. Он имеет интерфейсы C ++, C, Python, Java и MATLAB и поддерживает Windows, Linux, Android и Mac OS. OpenCV ориентируется в основном на приложения в режиме реального времени и использует преимущества команд MMX и SSE, когда они доступны. В настоящее время активно развиваются полнофункциональные интерфейсы CUDA и OpenCL. Существует более 500 алгоритмов и около 10-кратного числа функций, которые составляют или поддерживают эти алгоритмы. OpenCV написан на языке C ++ и имеет шаблонный интерфейс, который работает без проблем с контейнерами STL.
Информация, собранная с официального сайта