В этом разделе представлен обзор того, что такое opencv, и почему разработчик может захотеть его использовать.
Следует также упомянуть о любых крупных предметах в opencv и ссылаться на связанные темы. Поскольку документация для opencv нова, вам может потребоваться создать начальные версии этих связанных тем.
Версия | Дата выхода |
---|---|
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 |
Версия | Дата выхода |
---|---|
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 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
Отображение живого видеопотока, взятого с веб-камеры, с использованием класса 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.");
}
}
}
#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.0 в Windows и начинаем работу. Существует два способа установки OpenCV на окна. Один из них - загрузить установщик и запустить его. Другое - строить из источника.
Это самый простой способ установить OpenCV и начать работу. OpenCV дает предварительно сборку бинарные файлы для установки на Windows , здесь . После завершения загрузки загрузите его и установите по выбранному пути.
ProTip: Убедитесь, что ваш путь OpenCV не содержит пробелов. Итак, лучше, если вы просто установите его в каталог C: \ или D: \ root
Проблема с указанным выше методом заключается в том, что вы не можете использовать модули opencv_contrib. Кроме того, он не поставляется со всеми сторонними инструментами и библиотеками. Итак, если вы хотите использовать все это, просто следуйте за ним.
Я объясню наименьший минимум, чтобы установить OpenCV из источника. Для более продвинутого, см. Здесь .
Совет. Вы можете скачать Visual Studio 2013 Professional здесь. Он поставляется с пробной пробкой в течение 30 дней + расширенный маршрут продолжительностью 90 дней после входа в систему.
Ура!! Наслаждайтесь OpenCV.
Добавление каталога OpenCV в переменную PATH переменных среды:
Перейдите в раздел «Свойства системы» и нажмите «Дополнительные параметры системы».
Здесь добавьте папку bin, расположенную в вашей OpenCVdir / build / install / x86 / vc ** / bin, к этой переменной. Будьте осторожны, чтобы не заменить существующие значения Path.
После этого вам нужно перезапустить систему для изменения переменных среды, и теперь вы готовы к работе.
Изображение 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());
}
}
В этом примере мы увидим, как загрузить цветное изображение с диска и отобразить его с помощью встроенных функций 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 (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.
Информация, собранная с официального сайта