python OpenCV 图像通道分离和合并 (四)
2013-12-29 15:30
579 查看
图像通道分离
有两种方法,一个是使用OpenCV自带的split 函数,还有一个是使用Numpy数组来分离通道.
使用OpenCV 自带 split函数
使用Numpy 数组分离图像通道
通道合并
通道合并也有两种方法。一种是使用OpenCV自带的 merge 函数
使用Numpy 方法
问题: 网上看到说用Numpy 合并组合的方式与OpenCV自带的不一样,所以的结果不能在OpenCV 其它函数中使用。使用 OpenCV 自带的 merge 函数。
我的测试结果是它们的合并结果是一致的。
测试代码如下:
有两种方法,一个是使用OpenCV自带的split 函数,还有一个是使用Numpy数组来分离通道.
使用OpenCV 自带 split函数
#!/usr/bin/env python # encoding: utf-8 import cv2 import numpy as np img = cv2.imread("mini.jpg") b,g,r = cv2.split(img) cv2.imshow("Blue",r) cv2.imshow("Red",g) cv2.imshow("Green",b) cv2.waitKey(0) cv2.destroyAllWindows() # 也可以单独返回其中一个通道 b = cv2.split(img)[0] # B通道 g = cv2.split(img)[1] # G通道 r = cv2.split(img)[2] # R通道
使用Numpy 数组分离图像通道
#!/usr/bin/env python # encoding: utf-8 import cv2 import numpy as np #使用Numpy 数组来实现图像通道分离 img = cv2.imread("mini.jpg") # 创建3个跟图像一样大小的矩阵,数值全部为0 b = np.zeros((img.shape[0],img.shape[1]),dtype=img.dtype) g = np.zeros((img.shape[0],img.shape[1]),dtype=img.dtype) r = np.zeros((img.shape[0],img.shape[1]),dtype=img.dtype) #复制图像通道里的数据 b[:,:] = img[:,:,0] # 复制 b 通道的数据 g[:,:] = img[:,:,1] # 复制 g 通道的数据 r[:,:] = img[:,:,2] # 复制 r 通道的数据 cv2.imshow("Blue",b) cv2.imshow("Red",r) cv2.imshow("Green",g) cv2.waitKey(0) cv2.destroyAllWindows()
通道合并
通道合并也有两种方法。一种是使用OpenCV自带的 merge 函数
merged = cv2.merge([b,g,r]) #前面分离出来的三个通道
使用Numpy 方法
mergedByNp = np.dstack([b,g,r])
问题: 网上看到说用Numpy 合并组合的方式与OpenCV自带的不一样,所以的结果不能在OpenCV 其它函数中使用。使用 OpenCV 自带的 merge 函数。
我的测试结果是它们的合并结果是一致的。
测试代码如下:
merged = cv2.merge([b,g,r]) print "Merge by OpenCV" print merged.strides ''' merge by OpenCV (1890, 3, 1) ''' mergedByNp = np.dstack([b,g,r]) print "Merge by NumPy " print mergedByNp.strides ''' merge by Numpy (1890, 3, 1) '''
相关文章推荐
- OpenCV Python教程之图像元素的访问、通道分离与合并
- python OpenCV 图像通道分离和合并 (四)
- python3-opencv库(3)--图片颜色空间转换,利用HSV进行物体跟踪,图像通道分离与合并
- Python笔记——python OpenCV 图像通道分离和合并
- OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并
- 6-python图像处理opencv(2.图像像素访问,通道分离与合并)
- OpenCV学习(十四)之彩色图像RGB通道的分离、合并与显示
- 使用Opencv分离图像通道/合并图像通道
- OpenCV学习(十四)之彩色图像RGB通道的分离、合并与显示
- 【OpenCV学习笔记】十二、图像的对比度和亮度调整及图像通道的分离与合并
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
- 【OpenCV3】图像通道分离与合并——cv::split()与cv::merge()详解
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
- Opencv图像识别从零到精通(31)----图像修补,分离合并通道
- python中图像通道分离与合并
- Python-OpenCV单通道加噪(cv2.split通道分离+skimage+cv2.merge通道合并)
- 【OpenCV3图像处理】图像通道分离、通道合并、图像叠加混合
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
- OpenCV Python教程(2、图像元素的访问、通道分离与合并)
- python opencv 图片通道分离与合并