像素乘法运算
- result = numpy.dot (a , b) 函数:矩阵乘法
当a * b大于255时:a * b = mod(a * b , 256)
import numpy as np
# 随机生成两个像素矩阵,并进行“numpy.dot(a,b)”的操作
image1 = np.random.randint(0, 256, size=[3, 4], dtype=np.uint8)
image2 = np.random.randint(0, 256, size=[4, 3], dtype=np.uint8)
image3 = np.dot(image1, image2)
print('image1=\n', image1)
print('image2=\n', image2)
print('image3=\n', image3)
运行结果:
第一行第一列:
199144+7382+252122+3364 = 67498
67498 % 256 = 170
- result = cv2.multiply (a , b) 函数:点乘
当a * b大于255时:a * b = 255
import numpy as np
import cv2 as cv
# 随机生成两个像素矩阵,并进行“cv2.multiply(a,b)”的操作
image1 = np.random.randint(0, 256, size=[4, 4], dtype=np.uint8)
image2 = np.random.randint(0, 256, size=[4, 4], dtype=np.uint8)
image3 = cv.multiply(image1, image2)
print('image1=\n', image1)
print('image2=\n', image2)
print('image3=\n', image3)
运行结果:
第一行第一列:
231 * 201 = 46431 > 255 所以结果为255
第一行第四列:
1 * 157 = 157 < 255 所以结果为157
像素除法运算
- result = cv2.divide (a , b) 函数 : 点除
得数结果要取整(四舍五入)
import numpy as np
import cv2 as cv
# 随机生成两个像素矩阵,并进行“cv2.divide(a,b)”的操作
image1 = np.random.randint(0, 256, size=[4, 4], dtype=np.uint8)
image2 = np.random.randint(0, 256, size=[4, 4], dtype=np.uint8)
image3 = cv.divide(image1, image2)
print('image1=\n', image1)
print('image2=\n', image2)
print('image3=\n', image3)
运行结果:
第一行第一列:
138 / 95 = 1.452 … 取整 = 1