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

OpenCV(二) —— 颜色通道提取 边界填充 数值计算 图像融合

颜色通道提取 cv2.split() & cv2.merge()

import cv2

img=cv2.imread('cat.jpg')
cv2.imshow('Image',img)
cv2.waitKey(0) 

b,g,r=cv2.split(img)
print(r.shape)
cv2.imshow('Image',b)
cv2.waitKey(0) 
cv2.imshow('Image',g)
cv2.waitKey(0) 
cv2.imshow('Image',r)
cv2.waitKey(0) 

img=cv2.merge((b,g,r))
print(img.shape)

# 只保留R
cur_img = img.copy()
cur_img[:,:,0] = 0
cur_img[:,:,1] = 0
cv2.imshow('R',cur_img)
cv2.waitKey(0) 

# 只保留G
cur_img = img.copy()
cur_img[:,:,0] = 0
cur_img[:,:,2] = 0
cv2.imshow('G',cur_img)
cv2.waitKey(0) 

# 只保留B
cur_img = img.copy()
cur_img[:,:,1] = 0
cur_img[:,:,2] = 0
cv2.imshow('B',cur_img)
cv2.waitKey(0) 

可见RGB,单个通道拿出来的话都是灰的

 

 

 

边界填充 cv2.copyMakeBorder()

  • BORDER_REPLICATE:复制法,也就是复制最边缘像素。
  • BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefgh|hgfedcb
  • BORDER_REFLECT_101:反射法,也就是以最边缘像素为轴,对称,gfedcb|abcdefgh|gfedcba
  • BORDER_WRAP:外包装法cdefgh|abcdefgh|abcdefg
  • BORDER_CONSTANT:常量法,常数值填充。
import cv2

img=cv2.imread('cat.jpg')
top_size,bottom_size,left_size,right_size = (50,50,50,50)

replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP)
constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_CONSTANT, value=0)

import matplotlib.pyplot as plt
plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL')
plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title('REPLICATE')
plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REFLECT')
plt.subplot(234), plt.imshow(reflect101, 'gray'), plt.title('REFLECT_101')
plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP')
plt.subplot(236), plt.imshow(constant, 'gray'), plt.title('CONSTANT')

plt.show()

 

数值计算

图像融合

https://github.com/skyerhxx/blog-code/blob/master/%E5%9B%BE%E5%83%8F%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C.ipynb

https://github.com/skyerhxx/blog-code/blob/master/%E5%9B%BE%E5%83%8F%E6%93%8D%E4%BD%9C.zip

相关文章:

  • OpenCV四) —— 图像形态学处理(腐蚀操作 膨胀操作 开运算与闭运算 梯度运算 礼貌与黑帽)
  • OpenCV(五) —— 图像梯度处理 边缘检测(Sobel算子 Scharr算子 laplacian算子 Canny算子)
  • OpenCV(六) —— 边缘检测(Canny)
  • OpenCV(七) —— 图像金字塔(拉普拉斯金字塔) 轮廓检测(轮廓特征 轮廓近似 轮廓绘制 边界矩形 外接圆 ) 傅里叶变换
  • OpenCV(八) —— 直方图(mask操作 (自适应)直方图均衡化) 模板匹配 图像特征(harri角点检测)
  • TPU 使用TPU训练tensorflow初探(Colab)
  • 搜索中的TSA(树搜索算法) GSA(图搜索算法) UCS(代价一致) CSP(约束满足问题)
  • 二分图(二分图判断之染色法 最大匹配 最佳匹配 匈牙利算法)
  • 位图索引Bitmap indexes(数据库索引)
  • YOLO算法(二)—— Yolov2 yolo9000
  • YOLO算法(三)—— Yolov3 Yolo系列网络优缺点
  • Python的__future__模块
  • 启发函数heuristic 与 A*
  • 什么是non-trivial
  • 深度学习之目标检测(六)—— Faster RCNN系列算法(RCNN SPNet Fast RCNN Faster RCNN)
  • php的引用
  • 【刷算法】求1+2+3+...+n
  • 230. Kth Smallest Element in a BST
  • 30秒的PHP代码片段(1)数组 - Array
  • Material Design
  • nodejs:开发并发布一个nodejs包
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python语法速览与机器学习开发环境搭建
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue总结
  • 欢迎参加第二届中国游戏开发者大会
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • ------- 计算机网络基础
  • 技术:超级实用的电脑小技巧
  • 日剧·日综资源集合(建议收藏)
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​批处理文件中的errorlevel用法
  • #NOIP 2014# day.2 T2 寻找道路
  • #stm32整理(一)flash读写
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)关于多人操作数据的处理策略
  • ***检测工具之RKHunter AIDE
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET MVC第三章、三种传值方式
  • .NET6 命令行启动及发布单个Exe文件
  • @angular/cli项目构建--http(2)
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [AIGC] Redis基础命令集详细介绍