Поиск…


замечания

В этом разделе представлен обзор того, что такое 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.

Информация, собранная с официального сайта



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow