#define
threshold_diff1
10
#define
threshold_diff2
10
//设置简单帧差法阈值
int
main(int
argc,unsigned
char*
argv[])
{
Mat
img_src1,img_src2,img_src3//3帧法需要3帧图片
Mat
img_dst,gray1,gray2
要完全避免for,连列表表达式中使用for都不可以的话,主要就靠functools的reduce了。
因为在排除for之后,简单直接的办法中,只有reduce是可以处理列表中连续两个元素的。
当然,也可以不用reduce,使用map也是可以的:
至于做成方法,定义一个基于list的类后也差不多:
你好,代码如下:
------
a
=
[10,
8,
2,
45,
69,
38,
11,
15]
#假设该列表为需要输入的一组数
a.sort(reverse
=
true)
#首先对这组数进行从大到小的排序
a
#输出排序结果
min
=
a[0]
#令min变量记录该列表中最大的值
for
i
in
range(
len(a)
-1
):
#i用来控制列表下标,
元素个数-1为了防止下面的相减越界
if
a[i]
-
a[i+1]
<
min:
#当前一个数减后一个小于当前min里的值时,
更新最小值
min
=
a[i]
-
a[i+1]
min
------
运行结果:
>>>
[69,
45,
38,
15,
11,
10,
8,
2]
1
>>>