当前位置: 首页 > news >正文

使用numpy处理图片——分离通道

大纲

  • 读入图片
  • 分离通道
    • 堆叠法
    • 复制修改法
  • 生成图片

在《使用numpy处理图片——滤镜》中,我们剥离了RGB中的一个颜色,达到一种滤镜的效果。
如果我们只保留一种元素,就可以做到PS中分离通道的效果。

读入图片

import numpy as np
import PIL.Image as Imageimg = Image.open('the_starry_night.jpg')
data = np.array(img)

分离通道

堆叠法

堆叠法是先把各个通道分离出来,然后重构成二维数组。最后和其他值为0的同大小二维数组进行堆叠,构造成三维数组。
在这里插入图片描述

colorDim3List = np.dsplit(data, 3)
red = colorDim3List[0].reshape(data.shape[0], data.shape[1])
green = colorDim3List[1].reshape(data.shape[0], data.shape[1])
blue = colorDim3List[2].reshape(data.shape[0], data.shape[1])zeros = np.zeros_like(blue)
red = np.dstack((red, zeros, zeros))
green = np.dstack((zeros, green, zeros))
blue = np.dstack((zeros, zeros, blue))

复制修改法

复制修改法就是将原来的三维数组进行复制,然后针对性的修改第三维度上相应字段的值。
在这里插入图片描述

red, green, blue = data.copy(), data.copy(), data.copy()
red[:, :, (1,2)] = 0
green[:, :, (0,2)] = 0
blue[:, :, (0,1)] = 0

生成图片

原图
在这里插入图片描述

我们在一张图中展现各个通道。
在这里插入图片描述

http://www.lryc.cn/news/279705.html

相关文章:

  • metartc5_jz源码阅读-yang_rtcpush_on_rtcp_ps_feedback
  • 计算机毕业设计 | SpringBoot+vue的家庭理财 财务管理系统(附源码)
  • 前端面试题集合三(js)
  • ssm基于JAVA的酒店客房管理系统论文
  • 杨中科 .NETCORE ENTITY FRAMEWORK CORE-1 EFCORE 第一部分
  • 微信小程序 全局配置||微信小程序 页面配置||微信小程序 sitemap配置
  • 使用ffmpeg对视频进行静音检测
  • Servlet-Request
  • 数据结构-怀化学院期末题(490)
  • Matlab字符识别实验
  • MySQL夯实之路-存储引擎深入浅出
  • 内存卡为什么会提示格式化,内存卡提示格式化还能恢复吗
  • 阅读文献-胃癌
  • 水仙花数(Java解法)
  • vue3 源码解析(3)— computed 计算属性的实现
  • Alibaba-> EasyExcel 整理3
  • 创建组-RibbonGroup
  • 面试题目1
  • 考古学家 - 华为OD统一考试
  • Linux服务器安全配置基线
  • Kafka外网访问
  • Vant2组件库van-list+Toast下拉加载滚动条回顶问题
  • 使用 C++/WinRT 创作 API
  • C#写windows服务,实现把检测软件崩溃工具写成服务 自动运行
  • QT中线程的退出分析
  • 进程的创建
  • day-08 构造限制重复的字符串
  • Java锁的分类
  • SQL-分组查询
  • HBase 基础