目录
创建ndarray对象
ndarray对象的切片和索引
生成随机数、随机矩阵
创建ndarray对象
- np.array()可以接受一切序列型的对象,并且可以指定对象中的元素的数据类型,若不指定则自动为创建的数组推断一个适合的数据类型。
- np.zeros()可以创建一个全为0的矩阵
- np.ones()可以创建一个全为1的矩阵
示例代码:
import numpy as np
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype=np.float32)
b = np.ones((3, 3), dtype=np.uint8)
c = np.zeros((3, 3), dtype=np.uint16)
print("{}n{}n{}n".format(a, b, c))
ndarray对象的切片和索引
切片与索引可以对图像的像素或者某一通道进行操作。如:
import cv2 as cv
import matplotlib.pyplot as plt
import sys
# 裁剪图像
image = cv.imread('/墩墩儿.jpeg')
# 检测是否读取成功
if image is None:
print('Failed to read')
sys.exit()
# 查看要裁剪区域具体坐标
plt.imshow(image)
plt.show()
# [y1:y2, x1:x2]
img_dun_dun = image[660:841, 230:436]
cv.imshow('dundun', img_dun_dun)
cv.waitKey(0)
cv.destroyAllWindows()
结果如下:
可见左图显示出来的图像与原图像不同,这是由于OpenCv导入的图像是BGR形式,而matplotlib中读取的是RGB形式。
此处可以进行切片索引的另一种用法,分离颜色通道并重新组合
# 分离图像颜色通道 b = image[:, :, 0] g = image[:, :, 1] r = image[:, :, 2] # 合并颜色通道 image_RGB = cv.merge([r, g, b])
这样得到的图像就可以显示出原本的样子了



