# numpy创建矩阵 常用API: 创建数组array() 创建全0数组zeros()/ones() zeros((行高,列高,通道层数(3),np.uint8)RGB色彩填3 创建全值数组full() 创建单元数组identity/eye()斜对角为1 ROI区域截图 numpy:具体操作看下图代码示例:
import numpy as np
import cv2 as cv
# 通过array()定义矩阵
a = np.array([1,2,3])
b = np.array([[1,2,3],[4,5,6]])
# zeros((行数,列数,通道数/层数),dtype=np.uint8)uint8最大值255
c = np.zeros((8,8,3), dtype=np.uint8)
# ones((行数,列数,通道数/层数))矩阵
d = np.ones((8,8),np.uint8)
# print(d)
# full((行数,列数,通道数/层数),255,dtype=np.uint8),255是每个元素的数值
e = np.full((8,8),255,dtype=np.uint8)
# print(e)
# 单元矩阵(斜对角为1),np.identity(正方形矩阵边长)
f = np.identity(5,dtype=np.uint8)
# print(f)
# eye(宽,长,第几列开始为1)可定义为长方形矩阵
g = np.eye(3,6,3)
# print(g)
# 使用cv显示创造矩阵后的图像
# img[y,x] img对图像操作是先y再x
img = np.zeros((480,640,3),np.uint8)
# img1 = np.full((480,640,3),255,np.uint8)
# img2 = np.ones((480,640,3),np.uint8)
# 从矩阵中读某个元素的值
print(img[100,100])
# ROI: img[y1:y2,x1:x2]注意y和x顺序,img[:,:]可以选择全部图像
# img[10:100,100:200] = [255,255,255]
count = 0
# 向矩阵中某元素赋值,其中img[count,100,index] = 255,索引表示为给BGR(依次是0,1,2)赋值.
# 也可以用[b,g,r]这样进行赋值
while count < 200:
img[count,100,2] = 255
count += 1
cv.imshow('img',img)
# cv.imshow('img1',img1)
# cv.imshow('img2',img2)
cv.waitKey(0)
cv.destroyAllWindows()