Рубрики
Без рубрики

Обнаружение геометрических форм в изображении с использованием OpenCV

Ну, я просто изучал библиотеку Python OpenCV в этом карантине, и проходил через это, я Cam … Tagged с помощью Python, OpenCV, машинного обучения, информатики.

Ну, я только что изучал библиотеку Python OpenCV в этом карантине, и проходил через это, я наткнулся на контур сроков.

Контуры можно объяснить просто как кривая, соединяющая все непрерывные точки (вдоль границы), имея одинаковый цвет или интенсивность. Контуры являются полезным инструментом для анализа и обнаружения и распознавания объектов. И нужно узнать, как мы можем использовать его, чтобы найти геометрические формы на изображении.

Давайте начнем, как это происходит.

Подход : Подход, который мы будем использовать для обнаружения формы данного многоугольника, будет основан на классификации обнаруженной формы на основе ряда сторон, которые у нее есть. Например, если обнаруженный полином имеет 3 стороны, то его можно рассматривать как треугольник, если полиномиальность имеет 4 стороны, то его можно было бы классифицировать как квадрат или прямоугольник и так далее. Давайте найдем, как это сделать Импорт библиотек

import numpy as np
import cv2
  1. Импортируйте изображение и преобразуйте в изображение серого.

3. Применение порога на изображение, а затем найти контуры.

img = cv2.imread('shapes.PNG')
imgGry = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

_, thrash = cv2.threshold(imgGry, 240 , 255, cv2.CHAIN_APPROX_NONE)
contours , _ = cv2.findContours(thrash, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)

« ret » собирает значение, которое в соответствии с Otsu Метод, является лучшим значением для порога изображения.

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

и для ” thrash “: это пороговое значение изображения

Каково пороговое значение изображения? **

Порог является некоторым фиксированным значением, которое привлекает граничную линию между двумя наборами данных. Бинарный (биологический) Изображение означает , только би или две интенсивность Значения можно использовать для представления всего изображения. В обработке изображений, как правило, мы говорим двоичный изображение, когда состоит только черно -белые пиксели.

Следующий : Используя CV2.findContour (), мы получаем контуры и иерархию. На самом деле мы получили три массива, сначала это изображение, во -вторых, это наши контуры и еще один вывод, который мы назвали иерархией.

Обычно мы используем cv2.findcontours () ** Функция для обнаружения объектов в изображении, верно? Иногда объекты находятся в разных местах. Но в некоторых случаях некоторые формы находятся внутри других форм, как вложенные фигуры. В этом случае мы называем внешний как родитель и внутренний как ребенок . Таким образом, контуры на изображении имеют некоторое отношение друг к другу. И мы можем указать, как один контур подключен друг к другу, например, это ребенок другого контура, или это родитель и т. Д. Представление этих отношений называется Иерархия Анкет

Контуры : Контуры ** Можно объяснить просто как кривая, соединяющая все непрерывные точки (вдоль границы), имея одинаковый цвет или интенсивность. контуры являются полезным инструментом для анализа форм и обнаружения объектов и распознавания.

4 . Следующий шаг: ** а) Начните цикл в диапазоне контур и перечитывает через него. б) печать полиномиального имени в соответствии с NO. контуры вместе, используя oppxpolydpfunction () **

Краткий обзор функций, используемых в этом блоке:

oppxpolydp () **: Эта функция вычисляет и аппроксимирует полигональную кривую с указанной точностью

oppxpolydp () ** приближается к форме контура к другой форме с меньшим количеством вершин в зависимости от точности, которую мы указываем. Это реализация Дуглас-Пейкер алгоритм. Проверьте страницу Википедии на предмет алгоритма и демонстрации.

Пример того, как работает oppxpolydp ().

DrawContours () : Рисует контурные контуры или заполненный цвет. Чтобы нарисовать контуры, _cv2.drawcontours Функция используется. Его также можно использовать для рисования любой формы, если у вас есть ее граничные точки. Его первым аргументом является исходное изображение, второй аргумент – это контуры, которые следует передавать в качестве списка Python, третий аргумент – это указатель контуров (полезный при рисовании отдельного контура. Чтобы нарисовать все контуры, пройти -1), а остальные аргументы -это цвет, толщина и т. Д.

BoundingRect () : Это дает граничные точки прямоугольника. putText () : Он помещает текст на изображение.

5 . Покажите Изображение и закройте все Windows **

И наша программа успешно работает. Изображение используется:

Вывод кода:

Доступен весь код 👇:

Ссылка GitHub на этот репо 👇:

SIMARPREETSINGH-019/OPENCV-обучение

Содержит коды и мини -проект, выполненные во время обучения OpenCV

Этот репозиторий содержит некоторые программы, которые я изучал при изучении библиотеки: OpenCV с использованием Python

Статьи Ссылка

Спасибо за чтение! Я надеюсь, что вам понравилась статья и получила дополнительную информацию. Если вы это сделали, не стесняйтесь оставить хлопок! Конструктивная обратная связь ценится. Не стесняйтесь обращаться ко мне Здесь, на LinkedIn или simarpreetsingh.019@gmail.com Анкет

Это все на этот раз, увидимся в ближайшее время с другим постом. Simarpreet Singh, подписание. ਸਤਿ ਸ਼ੀ੍ ਅਕਾਲ 🙏

Ссылка на статью средней статьи:

Обнаружение геометрических фигур в изображении с использованием OpenCV | Симарприт Сингх | Просто разработчик | Середина

Simarpreet Singh ・ 21 июня 2020 г. ・ 4 мин. Читать среду

Использованная литература:

  1. https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/py_table_of_contents_contours.html

  2. Википедия

Python3 #Detuction_shapes #ImageProcessing # OpenCV

Оригинал: “https://dev.to/simarpreetsingh019/detecting-geometrical-shapes-in-an-image-using-opencv-4g72”