基本图像操作
第1关:图片的基本读取和保存操作
1.相关知识
- 图片读取
img = cv2.imread(filepath)
img = cv2.imread('img.jpg')
img = cv2.imread(filepath + 'img.jpg')
img = cv2.imread(filepath +'out/img.jpg')
- 兴趣窗口截取(截图)
img1 = img[100:150,200:300]
- 图片显示
cv2.imwrite(savepath , img1)#cv2.imwrite(保存到的地方 , 被保存对象)
cv2.imwrite('img1.jpg' , img1)
2.编程要求
根据提示,在右侧编辑器补充 Begin-End 代码,实现图片的读取、保存以及兴趣窗口截取的操作。具体要求如下:
- 读取给定路径下的图片。
- 图片兴趣区域截取。将要求 1 读取的图片,截取[100:150,200:300]的兴趣区域,并保存成cap.png。
3.代码实现
import cv2
def Gen():
filepath = '/data/workspace/myshixun/task1/cat.jpg'
# 读取给定路径filepath的图片cat.jpg
########## Begin ##########
img = cv2.imread(filepath)
########## End ##########
# 读取感兴趣窗口[100:150,200:300]并保存为指定路径savepath
savepath='/data/workspace/myshixun/task1/out/cap.png'
########## Begin ##########
img2 = img[100:150,200:300]
cv2.imwrite(savepath , img2)
########## End ##########
第2关:图像通道分离与合并操作
1.相关知识
图像:M×N×C
- M,N:像素亮度
- C:通道数
- C=1:单通道
- C=3:三通道(R,G,B)
1.将三原色三通道分开,得到的是 B,G,R 单独通道的灰度图
B,G,R = cv2.split(img)
2.使其它两个通道的“亮度”为 0,分离显示单独颜色
三个维度:
0→B
1→G
2→R
eg.显示绿色通道
import cv2
img = cv2.imread('flower.jpg')
#展示彩色图片
cv2.imshow('flower.jpg', img)
#将蓝红置0
img[:, :, 0] = 0
img[:, :, 2] = 0
cv2.imshow('flower_g.jpg', img)
cv2.waitKey(0)
可以得到如下图所示的绿色通道图像:
3.合并通道
注意:((B,G,R))此处是双括号
img2 = cv2.mer