OpenCV 创建黑白图像和RGB图像

  • Post author:
  • Post category:其他




OpenCV 创建图像


# -*- coding: utf-8 -*-
# @Time    : 2021/7/20
# @Author  : ZYh
"""
Introduction:
创建图像:
    ·OpenCV中,黑白图像实际是一个二维数组,彩色图像是一个三维数组。
        数组中每个元素就是图像对应位置的像素值
    ·数组索引、像素行列、像素坐标关系如下:
        数组行索引 = 像素所在行数 - 1 = 像素纵坐标
        数组列索引 = 像素所在列数 - 1 = 像素横坐标
    ·在黑白图像中,像素为0为纯黑色,像素为255为纯白色
创建随机像素三通道(RGB)图像:
    · 像素点下标为0([:, :, 0])是①通道,代表蓝色
    · 像素点下标为0([:, :, 1])是②通道,代表绿色
    · 像素点下标为0([:, :, 2])是③通道,代表红色
    ·OpenCV彩色图像默认为BGR格式,是三维数组,第三个索引表示三基色颜色分量
    ·创建随机像素,调用np的方法random.randint(para1, size(), dtype=)
        para1: 范围,只填256表示[0,256)
        para2: shape: (height,width, 3) 如果有 3 则代表有三个通道,为BGR图像
        para3: 数据类型,一般像素位np.uint8

"""
import numpy as np
import cv2 as cv

width = 500
height = 400
# 创建指定宽高、3通道、像素值都为0的图像
img = np.zeros((height, width, 3), np.uint8)
blue = img.copy()
# 1通道所有像素都为255
blue[:, :, 0] = 255
# 2通道所有像素都为255
green = img.copy()
green[:, :, 1] = 255
# 3通道所有像素都为255
red = img.copy()
red[:, :, 2] = 255

# 生成随机像素黑白图像
# 创建指定宽高、单通道、随即像素值的图像,随机值在256以内[0,256),数字为无符号8位整数
image_random_bw = np.random.randint(256, size=(height, width), dtype=np.uint8)

# 生成随机像素RGB图像
# 创建指定宽高、三通道、随即像素值的图像,随机值在256以内[0,256),数字为无符号8位整数
image_random_RGB = np.random.randint(256, size=(height, width, 3),
                                     dtype=np.uint8)

cv.imshow("B", blue)
cv.imshow("G", green)
cv.imshow("R", red)
cv.imshow("random_bw", image_random_bw)
cv.imshow("random_RGB", image_random_RGB)

cv.waitKey()
cv.destroyAllWindows()


代码运行结果:

在这里插入图片描述



版权声明:本文为qq_53703628原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。