Opencv ��������� mac os

Install OpenCV 3 on MacOS

In this post, we will provide step by step instructions for installing OpenCV 3.3.0 (C++ and Python) on MacOS and OSX.

Step 1: Install XCode

Install XCode from App Store.

If XCode available on App Store is not compatible with your OS:

  1. Find XCode version compatible to your OS from this table https://en.wikipedia.org/w/index.php?title=Xcode#Version_comparison_table
  2. Go to this webpage https://developer.apple.com/download/more/
    • Login if you have apple developer account else create your account and login.
    • Search for xcode and download the version compatible to your OS.
  3. Install XCode.
  4. After installation open XCode, and accept xcode-build license when it asks.

Step 2: Install Homebrew

Launch a terminal from Launchpad. From this step onward, all commands will be run in the terminal.

Step 3: Install Python 2 and Python 3

Python version (2.6 or 2.7, 3.5 or 3.6) installed on your machine is required to determine path of Python’s site-packages. It will be used later.

NOTE : Recently Homebrew made some changes in Python formula. Earlier homebrew used to install python2 as /usr/local/bin/python. Now it follows these rules:

  1. Install python2 at /usr/local/bin/python2
  2. Install python3 at /usr/local/bin/python3
  3. python command will point to /usr/bin/python. This is the python distribution which comes with your OS and not installed by Homebrew.

We want to use Python installed by Homebrew because it makes installing/managing packages easier. To run python scripts you should run command python2 and python3 for Python 2 & 3 respectively. If you find this annoying and want to use command python to run python2, add following line to

This step is recommended not just for this course but in general to keep the python installation clean.

Step 4: Install Python libraries in a Virtual Environment

We will use Virtual Environment to install Python libraries. It is generally a good practice in order to separate your project environment and global environment.

Step 5: Install OpenCV

Step 5.1 : Compile & Install OpenCV

Note: Homebrew recently moved many popular formulae to homebrew-core.
Earlier you can install OpenCV 2 using formula name opencv and OpenCV 3 using formula name opencv3.
They have now renamed opencv3 to opencv and opencv to [email protected]
Various options such as –with-qt, –with-tbb etc are also removed in the updated formula and CUDA support is also dropped.
You can check these github issues 15853, 6126, 16640, 5996
to read more about it.

Homebrew has also made it compulsory to compile and install Python bindings for both Python 2 and Python 3. So if you don’t have Python 3 installed, Homebrew will install it while installing opencv.

Step 5.2 : Add OpenCV’s site-packages path to global site-packages

When brew is done compiling and installing OpenCV3, we will update path of site-packages directory which contains cv2.so file to Homebrew Python’s site-packages directory. Depending upon the Python version you have (2.6/2.7 or 3.5/3.6) these paths would be different.

Path to OpenCV’s Python library will be different depending upon which Python version you have. Double check the exact path and filename on your machine. Use this command to find out the path on your machine.

Step 7: Test OpenCV3

Now you can exit from Python virtual environment.

Now whenever you are going to run Python scripts which use OpenCV you have to activate the virtual environment we created using workon command.

Subscribe & Download Code

If you liked this article and would like to download code (C++ and Python) and example images used in this post, please click here. Alternately, sign up to receive a free Computer Vision Resource Guide. In our newsletter, we share OpenCV tutorials and examples written in C++/Python, and Computer Vision and Machine Learning algorithms and news.

Читайте также:  Как запустить hyper v windows 10

Источник

Записки программера

Страницы

вторник, 17 декабря 2013 г.

Установка OpenCV на Mac OS X

К сожалению нет простого способа установить OpenCV, чем через терминал.
Вы можете найти несколько методов установки в Интернете, такие как:

  1. CMake
  2. MacPort
  3. Homebrew

В этом уроке мы будем использовать CMake.

Установка CMake

  1. Прежде всего, необходимо загрузить DMG-файл бинарного дистрибутива CMake здесь&nbsp. Когда я устанавливал имя файла было CMake-2.8.12.1-Darwin64-universal.dmg .
  2. После завершения установки вам будет предложено помесить CMake в /usr/bin , выберите Да и закончите установку
  3. Для проверки того, что CMake был успешно установлен, наберите в Терминале

Установка OpenCV

Пример OpenCV проекта

Теперь, когда мы установили библиотеку OpenCV, давайте попробуем сделать простой OpenCV проект. В качестве основного проекта-образца возьмем проект Tilo Mitra здесь. Огромное спасибо ему! Но я буду добавлять несколько дополнительных шагов для решения ошибок, когда я запускал свой ​​проект в Xcode 5.

  1. Создаем новый проект Xcode для консольного приложения C++ (Command Line Tool project of type C++).
  2. Мы должны добавить .dylib-файлы OpenCV в наш проект. Чтобы сделать это, щелкните правой кнопкой мыши на проекте, и выберите «Add files to..»
  3. Когда Finder всплывает, нажмите кнопку «/» воспитывать панель навигации.
  4. Введите /usr/local/lib/
  5. Добавим всех .dylib-файлы, которые нам нужны. Для предотвращения ошибки компоновщика, я рекомендую вам сначала добавить все файлы с расширением «. 2.4.7.dylib».
  6. Теперь, вы должны иметь кучу .dylib-файлов в вашем проекте. Не стесняйтесь, чтобы переместить их в отдельную группу в рамках вашего проекта.
  7. Нажмите на файле проекта и перейти к «Build Settings».
  8. Найдите «Header Search Paths»
  9. Дабавляем путь к /usr/local/include. Здесь были построены файлы заголовков для OpenCV.
  10. Найдите «Library Search Paths»
  11. Добавляем путь к /usr/local/lib
  12. Откроем main.cpp
  13. Переходим в меню File> Project Settings. В Derived Data Location выбираем Project-Relative
  14. Скопируйте следующий фрагмент кода. Этот фрагмент должен загрузить изображение из JPG-файла и сохранить его в виде PNG-файла.

Обратите внимание, что в 4-й строке я изменил cvauk.hpp (Tilo Mitra’s tutorial) на cvauk.h , потому в новой версии, по каким-то причинам, изменился заголовочный файл на .h вместо .hpp.

В 11 строке для упрощения загрузки изображения из файла используем cvLoadImage. По умолчанию файлы сборки проекта генерируются в

/Library/Developer/Xcode/DerivedData папке, и мы должны разместить свой файл изображения в той же папке, что и файлы сборки. Используя настройку project-relative, файлы сборки будут храниться в нашей папке проекта, поэтому мы можем положить свой «my_image.jpg» просто в папку проекта, то есть разместить его в $/DerivedData/PROJECT_NAME/Build/Product/Debug

Чтобы запустить проект просто нажимаем Ctrl + R, и мы получаем JPG конвертер PNG!

Источник

Platforms

OpenCV was designed to be cross-platform. So, the library was written in C and this makes OpenCV portable to almost any commercial system, from PowerPC Macs to robotic dogs. Since version 2.0, OpenCV includes its traditional C interface as well as the new C++ one. For the most part, new OpenCV algorithms are now developed in C++. Also wrappers for languages such as Python and Java have been developed to encourage adoption by a wider audience. OpenCV runs on both desktop (Windows, Linux, Android, MacOS, FreeBSD, OpenBSD) and mobile (Android, Maemo, iOS).

Android

Since 2010 OpenCV was ported to the Android environment, it allows to use the full power of the library in mobile applications development.

Currently, most embedded devices use CPUs based on ARM architecture, including Cortex-A and Cortex-M series. Deep Learning algorithms are usually trained on x86/x64-based servers with powerful Nvidia GPUs. But then the inference needs to be performed on low-power ARM chips.

In 2010 a new module that provides GPU acceleration was added to OpenCV. The ‘gpu’ module covers a significant part of the library’s functionality and is still in active development. It is implemented using CUDA and therefore benefits from the CUDA ecosystem, including libraries such as NPP (NVIDIA Performance Primitives). With the addition of CUDA acceleration to OpenCV, developers can run more accurate and sophisticated OpenCV algorithms in real-time on higher-resolution images while consuming less power.

In 2012 OpenCV development team actively worked on adding extended support for iOS. Full integration is available since version 2.4.2 (2012).

OpenCL

In 2011 a new module providing OpenCL™ accelerations of OpenCV algorithms was added to the library. This enabled OpenCV-based code taking advantage of heterogeneous hardware, in particular utilize potential of discrete and integrated GPUs. Since version 2.4.6 (2013) the official OpenCV WinMegaPack includes the ocl module.

In the 2.4 branch OpenCL-accelerated versions of functions and classes were located in a separate ocl module and in a separate namespace ( cv::ocl ), and often had different names (e.g. cv::resize() vs cv::ocl::resize() and cv::CascadeClassifier vs cv::ocl::OclCascadeClassifier ) that required a separate code branch in user application code. Since OpenCV 3.0 (master branch as of 2013) the OpenCL accelerated branches transparently added to the original API functions and are used automatically when possible/sensible.

Читайте также:  Системные звуки windows 10 где находится

Stay up to date on OpenCV and Computer Vision news

Источник

Библиотека OpenCV с Python

В этом руководстве мы узнаем, как использовать библиотеку OpenCV в Python. OpenCV – это библиотека с открытым исходным кодом, которая поддерживается несколькими платформами, включая Windows, Linux и MacOS, а также доступна для использования на нескольких других языках. Однако он чаще всего используется в Python для приложений машинного обучения, особенно в области компьютерного зрения.

Помимо кроссплатформенной поддержки и доступности на нескольких других компьютерных языках, что позволяет использовать разработанные на нем приложения в разных системах, OpenCV также, по сравнению с другими такими библиотеками, довольно эффективен с точки зрения вычислений, поскольку он использует вектор операций для большинства своих функций.

Рассмотрим установку OpenCV на Mac, Windows и Linux, операции с изображениями, арифметику изображений, сглаживание изображений и геометрические преобразования с использованием OpenCV.

Установка OpenCV в Python

Примечание. Поскольку мы собираемся использовать OpenCV на языке Python, неявно требуется, чтобы на вашей рабочей станции уже был установлен Python (версия 3). В зависимости от вашей ОС выполните одну из следующих команд, чтобы установить библиотеку OpenCV в вашей системе:

Windows

MacOS

Linux

Чтобы проверить, была ли ваша установка успешной, выполните следующую команду либо в оболочке Python, либо в командной строке или терминале:

Если вы не получаете сообщение об ошибке при импорте cv2, значит, он был установлен правильно.

Основные операции с изображениями

Теперь, когда мы установили OpenCV на наши рабочие станции, давайте займемся некоторыми функциями, которые предлагает OpenCV.

Отображение изображения

Отображение изображения с помощью OpenCV – это двухэтапный процесс. Сначала мы должны его загрузить, а затем отобразить. Обе операции выполняются последовательно с использованием разных функций.

Чтобы отобразить изображение, нам нужно знать две вещи:

  1. Путь к изображению (работают как абсолютные, так и относительные пути).
  2. Режим чтения (чтение, запись и т.д.).

Для чтения или загрузки изображения мы будем использовать функцию cv2.imread(), имеющую два варианта. Первый – IMREAD_GRAYSCALE, который, как следует из названия, преобразует изображение в оттенки серого перед его чтением. Второй – IMREAD_UNCHANGED, который загружает изображение без вырезания альфа-канала. По умолчанию IMREAD_COLOR просто считывает цветное изображение, используя только каналы RGB.

Приведем пример кода:

Это загрузит изображение велосипеда из файловой системы и сохранит его в переменной my_bike для дальнейших операций.

Примечание. Если вы получили сообщение об ошибке из приведенного выше кода, это может быть вызвано только тремя причинами. Во-первых, вы указали неверный путь, во-вторых, указанный вами файл изображения не существует, а во-вторых, что тип изображения (jpg, jpeg и png) в пути к изображению неверен.

Теперь давайте отобразим только что прочитанное изображение. Это можно сделать с помощью функции cv2.imshow().

Первый параметр функции imshow() – это имя строки, которую вы хотите отобразить в окне изображения. Второй параметр – это обработчик изображения, который мы создали с помощью функции cv2.imread().

Сохранение

Сохранение изображения – очень часто используемая функция, так как нам может потребоваться обновить изображение и сохранить изменения в файловой системе для дальнейшего использования. OpenCV имеет функцию cv2.imwrite() для сохранения изображений.

Здесь мы указываем имя и текущее местоположение изображения. Полученное изображение автоматически сохраняется в текущем рабочем каталоге.

Арифметические операции

Арифметические операции с изображениями относятся к сложению, вычитанию, умножению или делению нескольких изображений для создания нового изображения, которое представляет собой арифметическую комбинацию входных изображений. Арифметика изображений имеет множество применений, таких как добавление водяного знака к изображению, создание смешанной комбинации двух изображений, применение различных типов фильтров изображений и т.д.

Хотя существует множество операций, которые вы можете выполнять, мы покажем здесь только два примера, так как это позволит вам применить концепцию к другим арифметическим операциям, доступным в OpenCV. Первым примером будет добавление двух изображений, а вторым примером будет смешивание двух изображений.

Давайте закодируем эти два примера:

Добавление

Команда waitKey будет ждать, пока вы нажмете клавишу, прежде чем она перейдет к следующей команде. Это полезно для того, чтобы программа продолжала отображать ваше изображение до тех пор, пока не будет нажата клавиша, в противном случае оно будет отображаться на долю секунды, а затем быстро исчезнет после того, как программа прекратит выполнение.

Смешивание

Смешивание изображений аналогично добавлению изображений, за исключением того, что можно управлять вкладом каждого изображения в новое результирующее изображение. По сути, если мы хотим, чтобы одно изображение было более сфокусированным, а другое – более тусклым при объединении, мы будем использовать смешивание, а не простое добавление.

Читайте также:  Раздача вай фая windows 10

Давайте закодируем это, чтобы прояснить дальше:

Сумма весов, присвоенных функции addWeighted, должна быть равна 1.0. Вы также можете указать в конце скалярное значение, которое будет добавлено ко всем значениям пикселей полученного изображения.

Примечание: изображения могут быть любого типа, однако он должен быть одинаковым для всех изображений. Например, если вы используете формат PNG, все изображения, используемые для вычислений, также должны быть в формате PNG.

Сглаживание

Сглаживание изображений – очень полезная функция, которая в основном выполняется перед передачей изображений в модель машинного обучения. В основном это делается для удаления шумовых и высокочастотных элементов из изображений путем пропускания изображения через фильтр нижних частот. Существует множество фильтров, в том числе прямоугольный фильтр (усредняющий фильтр), медианный фильтр, модовый фильтр, фильтр Гаусса и многие другие. Однако, чтобы понять сглаживание изображения и то, как это сделать с помощью OpenCV, мы рассмотрим только блочный фильтр.

Допустим, у вас есть изображение размером 10×10, и вы хотите пропустить его через фильтр 3×3 или усредняющий, как бы вы это сделали?

Вы начнете с верхнего левого угла изображения, поместите туда свой фильтр 3×3 и замените центральный элемент средним значением всех 9 элементов. Это был первый шаг, теперь вы переместите свой фильтр на один шаг вправо и повторите тот же процесс, пока не покроете все изображение. Ниже для справки приведены примеры изображения 10×10 и усредняющего фильтра 3×3:

Фильтр применяется к изображению 10×10:

Теперь, когда мы обсудили, как это работает, давайте попробуем и посмотрим, как мы можем применять различные фильтры к нашему изображению с помощью OpenCV. Внимательно прочтите комментарии, чтобы узнать, какая строка кода используется для какого фильтра:

Примечание. Вы можете просмотреть полученные изображения, используя следующий дополнительный код:

Преобразование изображений

Это последняя, но одна из самых важных тем, которые мы собираемся затронуть с помощью OpenCV. У него много приложений, но одно из самых распространенных в настоящее время – машинное обучение для увеличения данных, то есть, когда у вас нехватка набора данных, вы увеличиваете и трансформируете доступные в настоящее время изображения, чтобы сделать их отличными от вашего существующего набора данных. Это эффективно увеличивает размер вашего набора данных и может помочь в повышении точности вашей модели.

Список возможных преобразований длинный, включая масштабирование, аффинность, вращение, перевод и т.д. мы рассмотрим только два из них, используя OpenCV, чтобы получить общее представление. Однако OpenCV предоставляет вспомогательные функции для широкого их круга. Начнем с масштабирования.

Масштабирование

Проще говоря, масштабирование – это просто изменение размера вашего изображения, то есть его увеличение или уменьшение. resize – это функция, используемая для масштабирования изображений в OpenCV. У изменения размера есть три типа: INTER_CUBIC, INTER_LINEAR и INTER_AREA. Давайте закодируем пример, использующий эти функции для масштабирования. Пожалуйста, внимательно прочтите код, комментарии и описания, поскольку они объяснят, что именно происходит в коде:

Здесь, в функции изменения размера, параметр fx in представляет масштабный коэффициент для ширины, fy представляет масштабный коэффициент по высоте, а интерполяция определяет функцию, которая будет использоваться для масштабирования (сжатие или расширение).

Вращение

Вращение позволяет нам перемещать изображение вокруг оси на определенный заданный угол.

Прежде чем мы узнаем, как вращать наши изображения с помощью кода, мы должны знать, что существует матрица вращения, которая используется для выполнения этого преобразования. Мы не будем вдаваться в подробности этого, поскольку OpenCV позволяет нам очень просто вычислить эту матрицу с помощью одного вызова функции. Вы увидите это в приведенном ниже коде:

В функции getRotationMatrix2D 180 указывает степень поворота изображения, 1 – коэффициент масштабирования, вызов функции вернет матрицу поворота в переменной matrix.

Вызов функции warpAffine использует матрицу, которую мы вычислили из предыдущего метода, для поворота изображения в соответствии с нашими требованиями.

Заключение

В заключение давайте еще раз подчеркнем некоторые важные моменты, которые мы обсуждали в этой статье. OpenCV – это библиотека, доступная на нескольких языках, которая в основном используется вместе с NumPy, SciPy и Matplotlib, как мы видели в некоторых из приведенных выше примеров. Некоторые из его функций такие же, как в Matlab, и он также поддерживает векторизованные операции, что увеличивает вычислительную эффективность.

Кроме того, OpenCV – одна из лучших библиотек для области компьютерного зрения, и после прочтения этой статьи вы сможете продолжить поиск некоторых приложений компьютерного зрения и обучения, которые были разработаны с использованием OpenCV.

Источник

Оцените статью