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类型下是怎么计算梯度的?

慕仙森
浏览 509回答 1
1回答

斯蒂芬大帝

数据溢出,将matrix类型转为 float然后计算梯度
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python