OpenCV-Python学习教程.3

对于CV2的库来说,一个彩色的照片通道的排序是,返回的图像格式的通道并不是按R、G、B排列的,而是按B、G、R顺序排列的。

b,g,r=cv2.split(image)image=cv2.merge([r,g,b])

这里我写一个通道变换正常的代码。

# 导入库import numpy as npimport argparseimport cv2# 构造参数解析器ap = argparse.ArgumentParser()ap.add_argument("-i", "--image", required=True, help="Path to the image")args = vars(ap.parse_args()) # 加载图像image = cv2.imread(args["image"])
# 通道分离,注意顺序BGR不是RGB(B, G, R) = cv2.split(image) # 显示各个分离出的通道cv2.imshow("Red", R)cv2.imshow("Green", G)cv2.imshow("Blue", B)cv2.waitKey(0)

这个代码执行后会得到三幅通道分离的照片。

# 导入库import numpy as npimport cv2
image = cv2.imread('./img/111.jpg')
(B, G, R) = cv2.split(image)
# 显示各个分离出的通道print(R.shape)print(G.shape)print(B.shape)# cv2.waitKey(0)
# 导入库import numpy as npimport cv2
image = cv2.imread('./img/111.jpg')
(B, G, R) = cv2.split(image)# cv2.imshow("Red", R)# cv2.imshow("Green", G)# cv2.imshow("Blue", B)# cv2.waitKey(0)# 显示各个分离出的通道print(image.shape)print(R.shape)print(G.shape)print(B.shape)# cv2.waitKey(0)
# 导入库import numpy as npimport cv2zeros = np.zeros(image.shape[:2], dtype="uint8")image = cv2.imread('./img/111.jpg')
(B, G, R) = cv2.split(image)# cv2.imshow("Red", R)# cv2.imshow("Green", G)# cv2.imshow("Blue", B)# cv2.waitKey(0)# 显示各个分离出的通道print(image.shape)print(R.shape)print(G.shape)print(B.shape)

# 生成一个值为0的单通道数组

# 分别扩展B、G、R成为三通道。另外两个通道用上面的值为0的数组填充cv2.imshow("Blue", cv2.merge([B, zeros, zeros]))cv2.imshow("Green", cv2.merge([zeros, G, zeros]))cv2.imshow("Red", cv2.merge([zeros, zeros, R]))cv2.waitKey(0)# cv2.waitKey(0)
# 生成一个值为0的单通道数组zeros = np.zeros(image.shape[:2], dtype = "uint8")
# 分别扩展B、G、R成为三通道。另外两个通道用上面的值为0的数组填充cv2.imshow("Blue", cv2.merge([B, zeros, zeros]))cv2.imshow("Green", cv2.merge([zeros, G, zeros]))cv2.imshow("Red", cv2.merge([zeros, zeros, R]))cv2.waitKey(0)

结论是:

cv2.split函数分离得到各个通道的灰度值(单通道图像)。cv2.merge函数是合并单通道成多通道(不能合并多个多通道图像)。

(0)

相关推荐

  • 好玩的OpenCV:图像操作的基本知识(2)

    1.1随机生成像素 生成与test.jpg相同大小图片,但是像素是随机生成的. import numpy as np import cv2raw_image = cv2.imread('test图片路 ...

  • 常见的图像处理技术

    重磅干货,第一时间送达 本期文章中,让我们一起来学习以下内容. 通过PIL和OpenCV来使用一些常见的图像处理技术,例如将RGB图像转换为灰度图像.旋转图像.对图像进行消噪.检测图像中的边缘以及裁剪 ...

  • 基于OpenCV的区域分割、轮廓检测和阈值处理

    重磅干货,第一时间送达 OpenCV是一个巨大的开源库,广泛用于计算机视觉,人工智能和图像处理领域.它在现实世界中的典型应用是人脸识别,物体检测,人类活动识别,物体跟踪等. 现在,假设我们只需要从整个 ...

  • python+opencv图像处理(十二)

    图像仿射变换和透视变换 天晴了...... 1.仿射变换 图像的仿射变换就是图像的旋转加上拉升,说直白点,就是把矩形变成平行四边形. 要把矩形变成平行四边行,只需要拉伸其四个角点就行了,事实上,只需要 ...

  • python数字图像处理(三)边缘检测常用算子

    在该文将介绍基本的几种应用于边缘检测的滤波器,首先我们读入saber用来做为示例的图像 #读入图像代码,在此之前应当引入必要的opencv matplotlib numpysaber = cv2.im ...

  • 弹幕君,别挡着我看小姐姐!

    某天代码写得老眼昏花,去B站上摸鱼,突然发现奇怪的现象: 哟呵,B站竟然做了视频前景提取,把弹幕藏到画面人物的后面.识别效果还意外地不错呢. 然后又翻了下,发现这是个叫做"智能防挡弹幕&qu ...

  • 基于OpenCV的表格文本内容提取

    重磅干货,第一时间送达 小伙伴们可能会觉得从图像中提取文本是一件很麻烦的事情,尤其是需要提取大量文本时.PyTesseract是一种光学字符识别(OCR),该库提了供文本图像. PyTesseract ...

  • OpenCV学习(2021.10.10)

    OpenCV学习(2021.10.10)

  • (11条消息) C++opencv图像裁剪、等比例放大缩小

    描述 C++使用opencv时,对imshow图像进行的常见处理,包括图像剪裁.等比例压缩等(待继续补充) 代码 1. 剪裁 int matrix_size = 3000; cv::Mat image ...

  • python+opencv图像处理(三)

    彩色图像拆分与合并 外面的世界很精彩,很缤纷,很鲜艳,很五颜六色...... 通常我们拍摄的图片都是彩色的,即RGB图像.自然界中的绝大多数颜色也都可以看作是由红(Red).绿(Green).蓝(Bl ...

  • Python进阶——OpenCV之GUI

    文章目录 图像处理(Getting Started with Images) 读取图像 显示图像 保存图像 使用Matplotlib 视频处理(Getting Started with Videos) ...

  • 好玩的OpenCV:图片操作的基本知识(1)

    图像基本知识 图像是由像素组成的,而像素实际上就是带有坐标位置和颜色信息的点.我们把图片想象成由若干行,若干列的点组成的, 现实中有RGB颜色系统,我们可以把图中任意一点(位置在第m行,第n列)的点A ...

  • 使用OpenCV校准鱼眼镜头

    重磅干货,第一时间送达 01.简介 当我们使用的鱼眼镜头视角大于160°时,OpenCV中用于校准镜头"经典"方法的效果可能就不是和理想了.即使我们仔细遵循OpenCV文档中的步骤 ...

  • python+opencv图像处理(八)

    无所谓,谁会爱上谁... 无所谓,不能天天更... 只要是,不要一直断... -----------------------------------我是可爱的分割线 图像平移的意思就是将图像沿着x轴. ...