python 灰度图像 转 二维数组_Numpy数组转换为OpenCV3图像

OpenCV中每张图像可以看成是 .array类型的二维或三维数组。8位的灰度图像是一个包含字节值的二维数组;8位的BGR图像是一个三维数组。

例如:

image[0,0] 或 image[0,0,0]

第一个值代表像素的y坐标或行,0表示顶部;

第二个值是像素的x坐标或列,0表示最左边;

第三个值(如果可用)表示颜色的通道。

1. 图像数组化

若一幅图的每个通道为8位,则可显式转换为标准的一维Python bytearray格式:byteArray = bytearray(image)

反之,bytearray含恰当顺序的字节,可以通过显式转换和重构,得到numpy.array形式图像:grayImage = np.array(grayByteArray).reshape(height,width)

bgrImage = np.array(bgrByteArray).reshape(height,width,3)

2. 随机数组转为图像

2.1 生成随机数组randomByteArray = bytearray(os.urandom(120000))

flatNumpyArray = np.array(randomByteArray)

2.2 转换为灰度图像

将随机数组转换为400*300灰色图像,保证元素个数相同grayImage = flatNumpyArray.reshape(300,400)

cv2.imwrite('RandomGray.png',grayImage)

2.3 转换为彩色图像

将随机数组转换为400*100的彩色图像(注:彩色图像为3通道)bgrImage = flatNumpyArray.reshape(100,400,3)

cv2.imwrite('RandomColor.png',bgrImage)

注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值