见代码注释
import cv2#opencv读取方式为BGR
#图像读取
img1=cv2.imread('D:/BaiduNetdiskDownload/opencv/Astexia.jpg',cv2.IMREAD_COLOR)#读取彩色图像
img2=cv2.imread('D:/BaiduNetdiskDownload/opencv/Astexia.jpg',cv2.IMREAD_GRAYSCALE)#读取灰色图像
print(img1)#输出图像的信息,矩阵
print(type(img1))
def cv_show(name,img):
cv2.imshow(name,img) #显示图像(窗口名称,图片变量)
cv2.waitKey(500) #等待时间(ms)。0:表示任意键终止
# cv2.destroyWindow() #关闭所有窗口
cv_show('color',img1)
print(img1.shape)#(h,w,c)(高,宽,颜色通道数)
cv_show('gray',img2)
print(img2.shape)
# 保存图片为
#cv2.imwrite("wife.jpg",img1)
# 截取部分图像[h1:h2,w1:w2]
img_head=img1[200:800,900:1400]
cv_show('head',img_head)
#提取颜色通道,opencv中颜色
b,g,r=cv2.split(img1)
#颜色组合
img_bgr_bestmatch=cv2.merge((b,g,r))
cv_show('best_match',img_bgr_bestmatch)
#只保留颜色通道B
"""
颜色通道B,G,R对应数组索引0,1,2
"""
img_B_color=img1.copy()
img_B_color[:,:,1]=0#冒号表示取全部
img_B_color[:,:,2]=0
cv_show('b_color',img_B_color)
运行效果
color(原图)
![](https://i-blog.csdnimg.cn/blog_migrate/38c49ce5e7b759241a43fb4cc6900de1.png)
gray(灰度图)
![](https://i-blog.csdnimg.cn/blog_migrate/c33700e1552cf95fab4e32f39739a411.png)
head(取图像部分)
![](https://i-blog.csdnimg.cn/blog_migrate/d6a11e76697defd42ab4328bed67549e.png)
bestmatch(BGR三色拆开再融合)
![](https://i-blog.csdnimg.cn/blog_migrate/29e1447a880b0fc6a19ce1bd4665c2a2.png)
B_color(只保留B的颜色通道)
![](https://i-blog.csdnimg.cn/blog_migrate/1da3d1d8c0187c0aca116c3e5d949c69.png)
[[[249 248 255]
[236 237 247]
[222 226 237]
...
[255 255 255]
[255 255 255]
[255 255 255]]
[[250 249 255]
[230 231 241]
[ 49 56 65]
...
[255 255 255]
[255 255 255]
[255 255 255]]
[[252 248 255]
[ 74 75 85]
[ 38 48 55]
...
[255 255 255]
[255 255 255]
[255 255 255]]
...
[[255 255 255]
[255 255 255]
[255 255 255]
...
[ 98 121 137]
[113 136 152]
[107 130 146]]
[[255 255 255]
[255 255 255]
[255 255 255]
...
[ 97 120 136]
[108 131 147]
[107 130 146]]
[[255 255 255]
[255 255 255]
[255 255 255]
...
[103 126 142]
[112 135 151]
[120 143 159]]]
<class 'numpy.ndarray'>
(1182, 2112, 3)
(1182, 2112)