如下图所示,将按照先将目标图像在水平方向上对折、再将其在垂直方向上对折的方式,把目标图像平均分割为4幅图像。
实现时,首先要读取目标图像,再获取目标图像的属性shape。得到了属性shape中行像素和列像素后,使用“切片”分别得到分割后的4幅图像。使用窗口显示这4幅图像,并且把这4幅图像保存在当前项目目录下的images文件夹下。代码如下:
import cv2
image = cv2.imread("images/ice.jpg") # 读取项目目录下images文件夹下的图像
rows, columns, channels = image.shape # 获取图像的行像素、列像素和通道数
cv2.imshow("ice", image) # 创建一个名称为ice的窗口显示读取到的图像
image_name = 1 # 使用数字命名将要被保存的图像
# 图像要被均分成2行2列的4幅图像
for i in range(2): # 表示“行”
for j in range(2): # 表示“列”
# 使用“切片”,分别得到4幅图像中的每一幅图像
img_roi = image[(i * int(rows/2)):((i + 1) * int(rows/2) -1),(j * int(columns/2)):((j + 1) * int(columns/2) -1)]
cv2.imshow(str(i) + "-" + str(j), img_roi) # 窗口显示4幅图像中的每一幅图像
cv2.imwrite("images/" + str(image_name) + ".jpg", img_roi) # 保存4幅图像中的每一幅图像
image_name = image_name + 1 # 用于命名将要被保存的图像的数字执行自加操作
cv2.waitKey() # 按下键盘上的任意按键后
cv2.destroyAllWindows() # 销毁显示图像的所有窗口