我有以下python脚本,它基于坐标进行图像裁剪。
for (i, c) in enumerate(cnts):
#draw the bright spot on the image
#(x, y, w, h) = cv2.boundingRect(c)
((cX, cY), radius) = cv2.minEnclosingCircle(c)
cv2.circle(bgr_img, (int(cX), int(cY)), int(radius),(255, 0, 0), 1)
crop_img = bgr_img[max(int(cY)-int(radius)-offset,0):max(int(cY)+int(radius)+offset,0),max(int(cX)-int(radius)-offset,0):max(int(cX)+int(radius)+offset,0)]
cv2.imwrite('%s_%x_%x.jpg'%(image_file,int(cX),int(cY)),crop_img)
#cv2.imshow("bump", crop_img)
print(image_file, int(cX), int(cY), int(radius))
当前,新裁剪的图像会保存到主文件夹(主图像(image_file)所在的主文件夹)中。我想在该目录中创建一个新文件夹,并将图像保存到新文件夹中。我尝试使用os库,但是没有用。 有帮助吗?
答案 0 :(得分:1)
使用os.mkdir
:
cropped_dir = 'cropped_images'
os.mkdir(cropped_dir)
for (i, c) in enumerate(cnts):
#draw the bright spot on the image
#(x, y, w, h) = cv2.boundingRect(c)
((cX, cY), radius) = cv2.minEnclosingCircle(c)
cv2.circle(bgr_img, (int(cX), int(cY)), int(radius),(255, 0, 0), 1)
crop_img = bgr_img[max(int(cY)-int(radius)-offset,0):max(int(cY)+int(radius)+offset,0),max(int(cX)-int(radius)-offset,0):max(int(cX)+int(radius)+offset,0)]
image_name = '{}_{}_{}.jpg'.format(image_file, cX, cY)
image_path = os.path.join(cropped_dir, image_name)
cv2.imwrite(image_path)
#cv2.imshow("bump", crop_img)
print(image_file, int(cX), int(cY), int(radius))