ROI区域
- 截取区域
import cv2 #opencv的缩写为cv2
import matplotlib.pyplot as plt # matplotlib库用于绘图展示
import numpy as np # numpy数值计算工具包
# 魔法指令,直接展示图,Jupyter notebook特有
%matplotlib inline
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
img = cv2.imread('01_Picture/01_cat.jpg')
cat = img[0:200,0:200] # 选择图片感兴趣的区域
cv_show('cat',cat)
-
执行结果
-
分离BGR通道
img = cv2.imread('01_Picture/01_cat.jpg')
b,g,r = cv2.split(img)
cv_show('cat_b',b)
print('b.shape:',b.shape) # B通道,单通道,灰度图
cv_show('cat_g',g)
print('g.shape:',g.shape) # G通道,单通道,灰度图
cv_show('cat_r',r)
print('r.shape:',r.shape) # R通道,单通道,灰度图
img = cv2.merge((b,g,r))
print('img.shape:',img.shape) # 3 通道,彩色图
- 执行结果
b.shape: (414, 500)
g.shape: (414, 500)
r.shape: (414, 500)
img.shape: (414, 500, 3)
- 展示R通道
# 只保留 R
img = cv2.imread('01_Picture/01_cat.jpg')
b,g,r = cv2.split(img)
img = cv2.merge((b,g,r))
cur_img = img.copy()
cur_img[:,:,0] = 0
cur_img[:,:,1] = 0
cv_show('R',cur_img)
-
执行结果
-
展示G通道
# 只保留 G
img = cv2.imread('01_Picture/01_cat.jpg')
cur_img = img.copy()
cur_img[:,:,0] = 0
cur_img[:,:,2] = 0
cv_show('G',cur_img)
-
执行结果
-
展示B通道
# 只保留 R
img = cv2.imread('01_Picture/01_cat.jpg')
cur_img = img.copy()
cur_img[:,:,1] = 0
cur_img[:,:,2] = 0
cv_show('B',cur_img)
- 执行结果