基于Python OpenCV与Matplotlib的红色斜十字图像生成及色彩空间分离技术解析

 文章目录


一、概要

制作一个红色斜十字的图片并分离色彩空间


二、库介绍

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()

 四、成果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜松云

请投喂云云喵,谢谢喵!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值