24x24 中类似 haar 的特征数量 window
Number of haar like features in 24x24 window
参考以下link
上面link包含了不同模板对应的haar特征数的计算(以下是link的节选)。
我不明白那些 (43200,27600,43200,27600,20736) 的精确计算是如何 made.Can 有人用简单的方式向我解释一下吗?
要了解,请查看算法 #1。对于第一个模式(a)
,以下两行(文章中的5和6)给出了解释
for all(i,j) such 1<=i<=24 and 1<=j<=24:
for all(h,w) such that i+h-1<=24 and j+2w-1<=24:
这意味着你将取左上角的所有组合(i
是顶部,j
是左边),然后是宽度的所有组合(w
)和适合 24x24.
的高度 (h
)
该算法还将使用宽度和高度的所有组合(1x4、1x6、1x8、...、1x24、2x2、2x4、2x6、2x8、...、2x24、3x2、3x4、3x6、. ..,高达 24x24)。只要宽度是 2 的倍数(由第 6 行的 2w
指定)。
最小的图案(2 像素宽和 1 像素高)将适合 24 * 23 = 552 个位置(23 个水平位置和 24 个垂直位置)。
例如,在某些时候,您将有一个 7x10 图案(7 像素高,10 像素宽)。它将适合 18 x 15 = 270 个位置(18 个垂直位置和 15 个水平位置)。
最大的矩形(24x24 像素)将由 12 个白色列和 12 个黑色列组成。它将只适合一个位置(整个图像)。
如果对所有可能维度的所有位置求和,就会得到数字。
为了得到第一个数字(对于模式 a),下面的程序(我没有优化它!但它应该很容易理解)打印 43200
:
# Pattern A
total = 0
for i in range(1,25): # 1 <= i <= 24
for j in range(1,25): # 1 <= j <= 24
for w in range(1,13): # 2*w=2,4,6,...24
for h in range(1,25): # h=1,2,...,24
if (i+h-1<=24) and (j+2*w-1<=24):
total += 1
print total
其他模式的解释类似。
参考以下link
上面link包含了不同模板对应的haar特征数的计算(以下是link的节选)。
我不明白那些 (43200,27600,43200,27600,20736) 的精确计算是如何 made.Can 有人用简单的方式向我解释一下吗?
要了解,请查看算法 #1。对于第一个模式(a)
,以下两行(文章中的5和6)给出了解释
for all(i,j) such 1<=i<=24 and 1<=j<=24:
for all(h,w) such that i+h-1<=24 and j+2w-1<=24:
这意味着你将取左上角的所有组合(i
是顶部,j
是左边),然后是宽度的所有组合(w
)和适合 24x24.
h
)
该算法还将使用宽度和高度的所有组合(1x4、1x6、1x8、...、1x24、2x2、2x4、2x6、2x8、...、2x24、3x2、3x4、3x6、. ..,高达 24x24)。只要宽度是 2 的倍数(由第 6 行的 2w
指定)。
最小的图案(2 像素宽和 1 像素高)将适合 24 * 23 = 552 个位置(23 个水平位置和 24 个垂直位置)。
例如,在某些时候,您将有一个 7x10 图案(7 像素高,10 像素宽)。它将适合 18 x 15 = 270 个位置(18 个垂直位置和 15 个水平位置)。
最大的矩形(24x24 像素)将由 12 个白色列和 12 个黑色列组成。它将只适合一个位置(整个图像)。
如果对所有可能维度的所有位置求和,就会得到数字。
为了得到第一个数字(对于模式 a),下面的程序(我没有优化它!但它应该很容易理解)打印 43200
:
# Pattern A
total = 0
for i in range(1,25): # 1 <= i <= 24
for j in range(1,25): # 1 <= j <= 24
for w in range(1,13): # 2*w=2,4,6,...24
for h in range(1,25): # h=1,2,...,24
if (i+h-1<=24) and (j+2*w-1<=24):
total += 1
print total
其他模式的解释类似。