diff --git a/README.md b/README.md index b4a2f26..8856cd0 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,45 @@ -# Measuring Size of Objects with OpenCV -### Calculates the size of objects based on a given reference object - -Cool object size estimator with just OpenCV and python - -All thanks to Adrian Rosebrock (from [pyimagesearch](https://www.pyimagesearch.com/)) for making -great tutorials. This project is inspired from his blog: [Measuring size of objects in an image with OpenCV](https://www.pyimagesearch.com/2016/03/28/measuring-size-of-objects-in-an-image-with-opencv/). I have included the author's code and the one i wrote my self as well. - -## **Key Points** -1. Steps involved: - 1. Find contours in the image. - 2. Get the minimum area rectangle for the contours. - 3. Draw the mid points and the lines joining mid points of the bounding rectangle of the contours. - 4. Grab the reference object from the contours and calculate **Pixel Per Metric** ratio. - 5. Calculate and print the bounding rectangle's dimensions based on the reference object's dimensions. -2. Assumptions: - 1. There is a reference object in the image which is easy to find and it's width/height is know to us. -3. Uses "Pixel Per Metric" ratio to calculate the size based on the given reference object. -4. Reference object properties: - 1. We should know the dimensions of this object (in terms of width or height). - 2. We should be able to easily find this reference object in the image, either based on the placement of the object (like being placed in top-left corner, etc.) or via appearances (like distinctive color and/or shape). -5. Used the United States quarter as the reference object. -6. Used the OpenCV's find contours method to find the objects in the image and calculated their dimensions. - - ## **Requirements: (with versions i tested on)** - 1. python (3.7.3) - 2. opencv (4.1.0) - 3. numpy (1.61.4) - 4. imutils (0.5.2) - - ## **Commands to run the detection:** - ``` -python object_size.py --image images/example_01.png --width 0.955 +# Измерение размера объектов с помощью OpenCV +### Вычисляет размер объектов на основе заданного эталонного объекта + +Классный оценщик размера объекта с помощью только OpenCV и python + +Выражаю благодарность Адриану Роузброку (из [pyimagesearch](https://www.pyimagesearch.com /)) за создание +отличных руководств. Этот проект вдохновлен его блогом: [Измерение размера объектов на изображении с помощью OpenCV](https://www.pyimagesearch.com/2016/03/28/measuring-size-of-objects-in-an-image-with-opencv/). Я включил код автора и тот, который я написал сам. + +## ** Ключевые моменты** +1. Необходимые шаги: +1. Найдите контуры на изображении. +2. Получите прямоугольник минимальной площади для контуров. +3. Нарисуйте средние точки и линии, соединяющие средние точки ограничивающего прямоугольника контуров. +4. Выделите опорный объект из контуров и вычислите соотношение **Пиксель на метрику**. +5. Вычислите и распечатайте размеры ограничивающего прямоугольника на основе размеров эталонного объекта. +2. Допущения: +1. На изображении есть эталонный объект, который легко найти, и его ширина / высота нам известна. +3. Использует соотношение "Пиксель на метрику" для вычисления размера на основе данного эталонного объекта. +4. Свойства ссылочного объекта: +1. Мы должны знать размеры этого объекта (в пересчете на ширину или высоту). +2. Мы должны быть в состоянии легко найти этот эталонный объект на изображении, либо основываясь на размещении объекта (например, в верхнем левом углу и т.д.), либо по внешнему виду (например, отличительному цвету и / или форме). +5. Использовал квартал Соединенных Штатов в качестве эталонного объекта. +6. Использовал метод поиска контуров в OpenCV, чтобы найти объекты на изображении и вычислить их размеры. + +## ** Требования: (с версиями, на которых я тестировал)** +1. python (3.7.3) +2. opencv (4.1.0) +3. numpy (1.61.4) +4. imutils (0.5.2) + +## **Команды для запуска обнаружения:** +``` +питон object_size.py --изображение images/example_01.png --ширина 0.955 ``` -## **Results:** -The results are pretty decent even though not perfect. This is due the limitations of the image itself as its not perfect top-down view of the objects and some calibrations could have also been done in the camera before clicking the picture. +## **Результаты:** +Результаты довольно приличные, хотя и не идеальные. Это связано с ограничениями самого изображения, поскольку на нем не идеальный вид объектов сверху вниз, и некоторые калибровки также могли быть выполнены в камере перед щелчком по изображению. -![Gif 1 of object dimensions](example_01.gif) -![Gif 2 of object dimensions](example_02.gif) +![Gif 1 размеров объекта](example_01.gif ) +![Gif 2 размеров объекта](example_02.gif ) -## **The limitations** -1. This technique requires the image to be near perfect top-down view of the objects to calculate the accurate results. Otherwise the dimensions of the objects in the image may be distorted. -2. The photos are prone to radial and tangential lens distortion which would lead to uneven object dimensions. +## ** Ограничения** +1. Для получения точных результатов этот метод требует, чтобы изображение объектов было почти идеальным при просмотре сверху вниз. В противном случае размеры объектов на изображении могут быть искажены. +2. Фотографии подвержены радиальному и тангенциальному искажению объектива, что может привести к неравномерным размерам объекта. \ No newline at end of file