gpt4 book ai didi

Python - 索贝尔 x 导数

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:25 27 4
gpt4 key购买 nike

通过这里的一些帮助,我想出了一个函数,它似乎将索贝尔导数应用于 X 方向的图像 F(x,y) = F(x+1,y) - F( x,y)我无法使用任何 OpenCV 函数,并且我需要 2D 输出数组比 2D 输入数组短 1 列。

但是,我不明白为什么这仍然没有返回短 1 列的输出数组。有人可以发现问题和/或告诉我这是否在正确的轨道上?非常感谢。

output = input[:-1,:]

r,c = input.shape

for i in range(0, r - 1):
output[i] = np.abs(input[i+1] - input[i])

return output

最佳答案

您可以使用 numpy 的 diff() 函数。请参阅its doc here .

还有一个代码片段来说明其用法:

import numpy as np
a = np.ones([5, 4])
b = np.diff(a, axis=1)

结果 b 是一个全是零的 (5, 3) 数组。

如果你想保持循环,你可以这样做:

r,c = input.shape
output = np.zeros([r-1, c])

for i in range(0, r - 1):
output[i] = np.abs(input[i+1] - input[i])

print output

编辑:“数学”x 对应于第二个轴(垂直),y 对应于第一个轴(水平)。因此,要获得 F(x+1, y) - F(x, y),您必须执行以下操作:

r,c = input.shape
output = np.zeros([r, c -1])

for j in range(0, c - 1):
output[:, j] = np.abs(input[:, j+1] - input[:, j])

print output

关于Python - 索贝尔 x 导数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com