首页 > 编程语言 > 详细

[Python图像处理]三.获取图像属性及通道处理

时间:2020-05-09 22:48:40      阅读:61      评论:0      收藏:0      [点我收藏+]

获取图像属性

1: 形状-shape:    通过shape关键字获取图像的形状,返回包含行数、列数、通道数的元祖。其中灰度图像返回行数和列数,彩色图像返回行数、列数和通道数

import cv2
img = cv2.imread("result.jpg", cv2.IMREAD_UNCHANGED)
# 返回行数,列数,通道数
print(img.shape)   # (515, 425, 3)

2:像素数目-size: 通过size关键字获取图像的像素数目,其中灰度图像返回行数 * 列数,彩色图像返回行数 * 列数 * 通道数

import cv2
img = cv2.imread("result.jpg", cv2.IMREAD_UNCHANGED)
print(img.size)  # 656625

3:图像类型-dtype: 通过dtype关键字获取图像的数据类型,通常返回uint8

import cv2
img = cv2.imread("result.jpg", cv2.IMREAD_UNCHANGED)
# 获取图像类型, 通常返回uint8
print(img.dtype)    # uint8

 

图像通道处理

1: 通道拆分: OpenCV读取的彩色图像由B、G、R三原色组成,可以通过下面代码获取不同的通道.(b=img[位置参数, 0]  g=img[位置参数, 1] r=img[位置参数, 2])

借助split()函数拆分通道

import cv2
img = cv2.imread("result.jpg", cv2.IMREAD_UNCHANGED)
# 拆分通道
b, g, r = cv2.split(img)
cv2.imshow("B", b)
cv2.imshow("G", g)
cv2.imshow("R", r)
cv2.waitKey(0)
cv2.destroyAllWindows()

2:通道合并: 图像通道合并主要调用merge()函数实现(m = cv2.merge([r, g, b]))

import cv2
img = cv2.imread("result.jpg", cv2.IMREAD_UNCHANGED)
b, g, r = cv2.split(img)
m = cv2.merge([r, g, b])
cv2.imshow("Demo", m)

可以修改通道之后再合并

import cv2
import numpy as np
img = cv2.imread("result.jpg", cv2.IMREAD_UNCHANGED)
rows, cols, chn = img.shape
b1 = cv2.split(img)[0]
# G, R通道设置为0,
g1 = np.zeros((rows, cols), dtype=img.dtype)
r1 = np.zeros((rows, cols), dtype=img.dtype)
m1 = cv2.merge([b1, g1, r1])
cv2.imshow("Demo1", m1)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果如下:

技术分享图片

 

 

 

 

 

转自:https://blog.csdn.net/Eastmount/category_7912787.html

[Python图像处理]三.获取图像属性及通道处理

原文:https://www.cnblogs.com/zhouzetian/p/12860084.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!