我被赋予了这个功能:
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
。
请帮助!。
答案 0 :(得分:2)
facteurforme
是lambda
Lambda表达式(有时称为lambda形式)用于创建 匿名函数。表达式lambda参数:表达式 产生一个函数对象。未命名对象的行为类似于函数 对象定义为:
def <lambda>(parameters): return expression
由于您应该使用regionprops和facteurforme
使用r.area
和r.perimeter
(这是regionprops的属性),因此显然应该使用一组区域属性作为lambda的论点。
facteureforme为给定的一组区域属性计算isoperimetric quotient。
该商对一个圆来说只有1(在非理论情况下非常接近1),对其他任何东西都更少。您可以使用此值来区分圆形和矩形。
r.equivalent_diameter
应该重命名为r.equivalent_diameterfloat
。
要开始做功课,建议您在网上搜索regionprops教程/示例