OpenCV 函数学习07-图像的创建(np.zeros)
Posted Python小白进阶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV 函数学习07-图像的创建(np.zeros)相关的知识,希望对你有一定的参考价值。
7. 图像的创建(np.zeros)
OpenCV 中图像对象的数据结构是 ndarray 多维数组,因此可以用 Numpy 创建多维数组来生成图像。特别对于空白、黑色、白色、随机等特殊图像,用 Numpy 创建图像非常方便。
Numpy 可以使用 np.zeros()
等方法创建指定大小、类型的图像对象,也可以使用 np.zeros_like()
等方法创建与已有图像大小、类型相同的新图像。
函数说明:
numpy.empty(shape[, dtype, order]) # 返回一个指定形状和类型的空数组
numpy.zeros(shape[, dtype, order]) # 返回一个指定形状和类型的全零数组
numpy.ones(shape[, dtype, order]) # 返回一个指定形状和类型的全一数组
numpy.empty_like(img) # 返回一个与图像 img 形状和类型相同的空数组
numpy.zeros_like(img) # 返回一个与图像 img 形状和类型相同的全零数组
numpy.ones_like(img) # 返回一个与图像 img 形状和类型相同的全一数组
参数说明:
- shape:整型元组,定义返回多维数组的形状
- dtype:数据类型,定义返回多维数组的类型,可选项
- img:ndarray 多维数组,表示一个灰度或彩色图像
基本例程:
# 1.14 Numpy 创建图像
# 创建彩色图像(RGB)
# (1) 通过宽度高度值创建多维数组
width, height, channels = 400, 300, 3 # 行/高度, 列/宽度, 通道数
imgEmpty = np.empty((width, height, channels), np.uint8) # 创建空白数组
imgBlack = np.zeros((width, height, channels), np.uint8) # 创建黑色图像 RGB=0
imgWhite = np.ones((width, height, channels), np.uint8) * 255 # 创建白色图像 RGB=255
# (2) 创建相同形状的多维数组
img1 = cv2.imread("../images/imgLena.tif", flags=1) # flags=1 读取彩色图像(BGR)
imgBlackLike = np.zeros_like(img1) # 创建与 img1 相同形状的黑色图像
imgWhiteLike = np.ones_like(img1) * 255 # 创建与 img1 相同形状的白色图像
# (3) 创建彩色随机图像 RGB=random
import os
randomByteArray = bytearray(os.urandom(width * height * channels))
flatNumpyArray = np.array(randomByteArray)
imgRGBRand = flatNumpyArray.reshape(width, height, channels)
# (4) 创建灰度图像
imgGrayWhite = np.ones((width, height), np.uint8) * 255 # 创建白色图像 Gray=255
imgGrayBlack = np.zeros((width, height), np.uint8) # 创建黑色图像 Gray=0
imgGrayEye = np.eye(width) # 创建对角线元素为1 的单位矩阵
randomByteArray = bytearray(os.urandom(width * height))
flatNumpyArray = np.array(randomByteArray)
imgGrayRand = flatNumpyArray.reshape(width, height) # 创建灰度随机图像 Gray=random
本例程的运行结果如下:
以上是关于OpenCV 函数学习07-图像的创建(np.zeros)的主要内容,如果未能解决你的问题,请参考以下文章