把一张图片切割成多个小图片
本小节的测试图片如下:
import cv2
"""
把一个480 * 640的图片,按照32 * 32的大小,均分成300张小图片
"""
def make_neg(path):
k = 0 # 图片计数用的变量
image = cv2.imread(path) # 读取图片
rows, cols, = image.shape[0:2] # 获得行数和列数
r1, r2 = [0, 32] #初始化r1, r2
while r2 <= rows:
c1, c2 = [0, 32] # 每循环一次,要重新给c1,c2赋值
while c2 <= cols:
# 截取图片
img = image[r1 : r2 + 1, c1 : c2 + 1]
# 把截图的图片保存到文件中
cv2.imwrite('neg_data/' + str(k) + '.jpg', img)
k, c1, c2 = [k + 1, c1 + 32, c2 + 32]# 更新值
r1, r2 = [r1 + 32, r2 + 32] # 更新值
print('finish')
if __name__ == "__main__":
make_neg('my_wife.jpg')
关于r1,r2,c1,c2的含义见下图:
测试结果如下,一共被切分成了300张图片
先到这里吧,拜~