矩阵运算
加法(uint8)
- ndarray的加法与Mat的加法不同:
以123+150=273为例,Mat会将大于255的数值直接截断,而array会对大于255的uchar类型进行255取模运算后减1,即273%255-1=17.
减法(uint8)
- ndarray的加法与Mat的减法不同:
如23-125=-102,Mat处理直接截断为0,numpy处理为对255取模后+1,即-102%255+1=154.
点乘
- 使用*运算法
- 使用multiply函数
点除
- 40/0时,若为uint8型,返回0,否则返回inf.
乘法
- 使用dot函数
幂函数
- power函数 把指数设为float型,保留精度
灰度图像数字化
import sys
import cv2
import numpy as np
if __name__ =="__main__":
image = cv2.imread(r'C:\Users\h\Desktop\image\lena.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow("image",image)
cv2.waitKey(0)
cv2.destroyAllWindows()
RGB彩色图转换为三维的ndarray
import sys
import cv2
import numpy as np
if __name__ =="__main__":
image = cv2.imread(r'C:\Users\h\Desktop\image\lena.jpg', cv2.IMREAD_ANYCOLOR)
b=image[:,:,0]
g=image[:,:,1]
r=image[:,:,2]
# b=cv2.split(image)[0]
# g=cv2.split(image)[1]
# r=cv2.split(image)[2]
cv2.imshow("b",b)
cv2.imshow("g",g)
cv2.imshow("r",r)
cv2.waitKey(0)
cv2.destroyAllWindows()
一次性分离
b,g,r = cv2.split(image)
彩色向灰度转化公式:
g
r
a
y
=
(
0.114
0.587
0.299
)
(
B
G
R
)
gray=\begin{pmatrix} 0.114& 0.587&0.299\end{pmatrix} \begin{pmatrix} B \\ G\\ R \end{pmatrix}
gray=(0.1140.5870.299)⎝⎛BGR⎠⎞
定义cvtColor函数实现彩色空间向灰度图像和其他颜色空间转换