【OpenCV学习】Mat数据结构与图像通道的分割与融合

🌈据说,看我文章时 关注、点赞、收藏帅哥美女们 心情都会不自觉的好起来。

前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
👍专栏介绍:OpenCV从入门到放弃 ,一个学习OpenCV的专栏~

专栏文章直链:
【OpenCV学习】OpenCV的色彩空间
【OpenCV学习】初识OpenCV其二
【OpenCV学习】初识OpenCV人生苦短,我用python

Mat数据结构与图像通道的分割与融合

mat数据结构

这些了解了解即可,不用太在意。

C++字段说明Python中ndarray字段
dims维度ndim
rows行数shape[0]
cols列数shape[1]
depth像素的位深dtype字母后的数字
channels通道数shape[2]
size矩阵大小size
typedep + dt + chs CV_8UC3dtype
data存放数据data

ndarray 的字段展示:

from cv2 import cv2
img = cv2.imread('./cat.jpeg')
print(img.ndim)
print(img.shape)
print(img.dtype)
print(img.size)
print(img.data)

在这里插入图片描述
再看一下图片属性:

在这里插入图片描述
完美配对,然后一般的图片又是RGB图片,读出来是BGR,是三通道图片,矩阵大小就是 821 * 617 * 3 = 1519671 ,基本上所有的 Mat 数据结构都有了。

图像通道的分割与融合

from cv2 import cv2
import numpy as np
img = np.zeros((200, 200, 3), np.uint8)
# 分割通道
b, g, r = cv2.split(img)
b[10: 100, 10: 100] = 255
g[10: 100, 10: 100] = 255
# 合并通道
img2 = cv2.merge((b, g, r))
cv2.imshow('img', np.hstack((b, g)))
cv2.imshow('img2', np.hstack((img, img2)))
cv2.waitKey(0)
cv2.destroyAllWindows()

会产生两组对比:第一组是蓝、绿通道的对比,第二组是原图和通道处理后的图片。
当中没有分割线,但很明显这是两个图片在一块,在单通道内,只能看到黑白灰的颜色,但通道合并后,就能看到更改颜色产生的效果:

在这里插入图片描述

小说一下

今天是520节日哈,少点学习,多点女朋友~😁

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值