一、dot()的使用
dot()返回的是两个数组的点积(dot product)
(其知识点为线代矩阵)
格式: result = np.dot(a,b)
其中:
- result表示计算的结果
- a和b代表需要进行矩阵乘法计算的两个像素值矩阵
运算规则:
- 当 a * b <= 255 时 result = a * b
import numpy as np
x = np.array([[1, 2],
[3, 4]])
y = np.array([[2, 2],
[1, 2]])
result1 = np.dot(x, y)
result2 = np.dot(y, x)
print("result1 = " + str(result1))
print("result2 = " + str(result2))
输出结果:
result1 = [[ 4 6]
[10 14]]
result2 = [[ 8 12]
[ 7 10]]
- 当a * b > 255时 result = mod(ab,256)
上式中mod(ab,256)表示"a*b的结果除以256取余"
import numpy as np
a = np.random.randint(0, 256, size=[4, 4], dtype=np.uint8)
b = np.random.randint(0, 256, size=[4, 4], dtype=np.uint8)
c = np.dot(a, b)
print("a=\n", a)
print("b=\n", b)
print("c=\n", c)
输出结果:
a=
[[189 94 49 186]
[250 244 201 15]
[229 92 55 23]
[ 94 63 87 118]]
b=
[[ 50 194 115 4]
[ 88 183 139 190]
[201 234 243 144]
[ 5 243 222 143]]
c=
[[ 85 196 192 46]
[208 215 151 113]
[252 105 250 165]
[161 205 88 20]]