小编Kev*_*arl的帖子

Matlab的stdfilt()函数的python等效项是什么?

我试图将Matlab中的一段代码转换为python。在那里,我可以找到标准偏差过滤器函数“ stdfilt()”,但在python中找不到任何等效的API。Matlab代码如下所示,

Ig_med = medfilt2(Input_Image);
h_gauss = fspecial('gaussian',11,2);
h_avg = fspecial('average',121);
I = imfilter(Ig_med,h_gauss,'corr','replicate');

P = stdfilt(I,ones(121));
P = P.^2; 

Q = imfilter(P,h_avg,'corr','replicate');
Run Code Online (Sandbox Code Playgroud)

谁能帮助我在Python中实现上述代码?

提前致谢

python-2.7

3
推荐指数
1
解决办法
1278
查看次数

即使条件不为真,列表值也会在if语句中更新

我试图firstCord在矩阵中扫描特定索引()的八个相邻索引,并找出它的任何邻居是否存在于Cord包含一些随机坐标作为元素的另一个列表()中.如果其中的任何邻居出现在Cord列表中,那么我会将该特定坐标附加到Temp_Cord列表中.代码段如下.

当第一次满足条件时,我可以看到Temp_Cord附加了newCord值的值if newCord in Cord:.这是预期的行为.但是附加值在Temp_Cord每个其他迭代中根据变化而变化newCord,这就像Temp_Cord[0]并且newCord共享相同的内存.有人可以帮我解决这个问题.我需要追加Temp_CordnewCord价值,只有当if newCord in Cord:条件为真.

预先感谢.

Cordlen = len(Cord)
orientation = [(-1,0), (-1,1), (0,1), (1,1), (1,0), (1,-1),(0,-1),(-1,-1)]
firstCord = [0,173]
Temp_Cord = []
while ((Arrlen) < Cordlen):

    newCord = [0,0]   

    for i in orientation:
        newCord[0] = firstCord[0] + i[0]
        newCord[1] = firstCord[1] + i[1]

        if newCord in Cord:
            Temp_Cord.append(newCord) …
Run Code Online (Sandbox Code Playgroud)

python

2
推荐指数
1
解决办法
59
查看次数

标签 统计

python ×1

python-2.7 ×1