numpy gradient函数在变量为array和matrix下求解结果不一致

新手上路,请多包涵

题目描述

使用numpy gradient函数求取梯度

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

g = img[0:3, 0:3]

g=
array([[138, 144, 141],

   [134, 135, 132],
   [137, 135, 133]], dtype=uint8)

gy, gx = np.gradient(g)
gy=
array([[252. , 247. , 247. ],

   [127.5, 123.5, 124. ],
   [  3. ,   0. ,   1. ]])

gx=
array([[ 6. , 1.5, 253. ],

   [  1. , 127. , 253. ],
   [254. , 126. , 254. ]])
   

arr=np.array([[138, 144, 141],[134, 135, 132],[137, 135, 133]])
arr=
array([[138, 144, 141],

   [134, 135, 132],
   [137, 135, 133]])
   

gy, gx = np.gradient(arr)
gy=
array([[-4. , -9. , -9. ],

   [-0.5, -4.5, -4. ],
   [ 3. ,  0. ,  1. ]])

gx=
array([[ 6. , 1.5, -3. ],

   [ 1. , -1. , -3. ],
   [-2. , -2. , -2. ]]) 

你期待的结果是什么?实际看到的错误信息又是什么?

为什么两者结果不一致,matrix类型下是怎么计算梯度的?

阅读 4.3k
1 个回答
✓ 已被采纳新手上路,请多包涵

数据溢出,将matrix类型转为 float然后计算梯度

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题