基于Python OpenCV与Matplotlib的红色斜十字图像生成及色彩空间分离技术解析
通过Numpy构建700×700画布,利用网格循环算法实现斜十字逻辑判定,结合BGR三通道分离原理完成色彩可视化分析,适用于计算机视觉基础教学与图像处理研究。
·
文章目录
- 一、概要
- 二、库介绍
- 2.1 numpy
- 2.2 cv2即opencv库
- 2.3 matplotlib.pyplot
- 三、代码示例
- 3.1 绘制红色斜十字图
- 3.2 红色图样例
- 3.3 分离色彩代码示例
- 四、成果展示
一、概要
制作一个红色斜十字的图片并分离色彩空间
二、库介绍
2.1 numpy
2.2 cv2即opencv库
2.3 matplotlib.pyplot
三、代码示例
3.1 绘制红色斜十字图
import numpy as np #数组库
import cv2 #opencv的库
import matplotlib.pyplot as plt #绘图库
image = np.zeros((700, 700, 3), dtype = np.uint8) #绘制一个700 * 700大小的全为0的图
block_size = 100 #步进数
for i in range(0, 700, block_size): #从0开始每隔100循环一次
for j in range(0, 700, block_size):
image[i : i + 3, :, :] = (255, 255, 255) #画出白色线
image[:, j : j + 3, :] = (255, 255, 255)
if(i != 0 and j != 0 and i!= 600 and (i == j or i + j == 600)): #判定什么格子变成红色
#i 0 100 200 300 400 500 600 700
#j 0 100 200 300 400 500 600 700
image[i: i + block_size, j: j + block_size, :] = (255, 0, 0) #将格子涂成红色
plt.imshow(image) #输出图片
plt.title('tu pian') #图片标题
plt.axis('off') #关闭坐标轴
plt.show() #固定显示
3.2 红色图样例
3.3 分离色彩代码示例
#分解三色图
r = image[:, :, 0] #分离通道0
g = image[:, :, 1] #分离通道1
b = image[:, :, 2] #分离通道2
#三通道值为0, 1, 2,从0开始
#创建三个700*700的图像
r_image = np.zeros((700, 700, 3), dtype = np.uint8)
g_image = np.zeros((700, 700, 3), dtype = np.uint8)
b_image = np.zeros((700, 700, 3), dtype = np.uint8)
r_image[:, :, 0] = r #令创建好的三通道图像附上单通道的颜色以实现显示
g_image[:, :, 1] = g
b_image[:, :, 2] = b
plt.subplot(1,3,1) #输出在一个一行三列的图片的第一个
plt.imshow(r_image)
plt.title('r')
plt.axis('off')
plt.subplot(1,3,2)#输出在一个一行三列的图片的第二个
plt.imshow(g_image)
plt.title('g')
plt.axis('off')
plt.subplot(1,3,3) #这样就可以让三个图片在同一行了
plt.imshow(b_image)
plt.title('b')
plt.axis('off')
plt.show()
四、成果展示

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)