Как показать только прямоугольники на изображении? - PullRequest
0 голосов
/ 31 марта 2019

Мне дали эту функцию:

import matplotlib.patches as mpatches

from skimage.measure import regionprops

import math

facteurforme = lambda r: (4 * math.pi * r.area) / (r.perimeter * r.perimeter)

circ = lambda r: (r.perimeter)/(r.equivalent_diameter)

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

Я бы знал, как использовать facteurforme.

Помогите пожалуйста!.

1 Ответ

2 голосов
/ 31 марта 2019

facteurforme является лямбда

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

def <lambda>(parameters): return expression

Поскольку вы должны использовать regionprops , а facteurforme использует r.area и r.perimeter, которые являются свойствами regionprops, очевидно, что вы должны использовать набор свойств региона в качестве аргумента лямбды .

facteureforme вычисляет изопериметрический коэффициент для заданного набора свойств региона.

Это частное всего 1 для круга (или очень близко к 1 в не теоретическом случае) и меньше для всего остального. Вы можете использовать это значение для различения кругов и прямоугольников.

Также см. Коэффициент формы: Круглость

r.equivalent_diameter следует переименовать r.equivalent_diameterfloat кстати.

Чтобы начать работу с домашним заданием, я предлагаю вам поискать в Интернете учебники / примеры regionprops

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...