Python OpenCV3 生成自定义纯色图像教程

蓝鲸
蓝鲸
发布时间:2026-10-13 | 3人浏览过
原创

本文详细介绍如何利用Python结合OpenCV3库生成自定义纯色图像。内容涵盖图像在计算机中作为矩阵存储的基本原理,从单通道灰度图到三通道BGR彩色图的转换过程,以及通过NumPy数组直接修改像素值来实现特定颜色输出的具体代码示例与效果解析。

生成单通道灰度图像

一、

在计算机内部,图像被存储为矩阵形式,矩阵中的每个点代表一个像素。如果矩阵由0到255之间的整数值构成,则显示为灰度图像。为了便于理解,下面提供相关代码示例:


import cv2
import numpy as np
img = np.ones((3,3),dtype=np.uint8)#random.random()方法后面不能加数据类型
#img = np.random.random((3,3)) #生成随机数都是小数无法转化颜色,无法调用cv2.cvtColor函数
img[0,0]=100
img[0,1]=150
img[0,2]=255
cv2.imshow('img',img)

cv2.waitKey(0)

运行上述代码后,效果如下所示:

img[0,0]代表矩阵第一行第一列的元素,其值为100。依此类推,从图中可以看出,数值越大,灰度越小,显示效果越接近白色(也可以理解为亮度越高)。其中,0表示完全不亮,即黑色;255表示全亮,即白色。

转换为三通道BGR图像

二、

上述示例仅展示了单通道的效果。接下来,我们将把上述图像转换为三通道BGR图像,此时每个像素点由一个三元数组表示。其中,bgr_img[0,0,0]表示第一行(y)第一列(x)的B通道值;bgr_img[100,200,1]表示第101行(y)第201列(x)的G通道值。

注意:第三个参数表示BGR通道,取值范围为0到2。

为了便于理解,下面提供相关代码:


bgr_img = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
cv2.imshow('bgr_img',bgr_img)
bgr_img[:,:,0] = 0
bgr_img[:,:,1] = 255
bgr_img[:,:,2] = 255
cv2.imshow('bgr_img2',bgr_img)
cv2.waitKey(0)

将上述代码与第一部分结合运行后,效果如下:

这篇关于Python和OpenCV3生成自定义纯色图像的教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表