Reputation: 2311
I have the following python script which does image cropping based on cordinates.
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))
Currently, new cropped images are saved into main folder where the main image (image_file) resides. I would like to make a new folder in that directory and save the images into the new folder. I tried using os library but did not work. Any help ?
Upvotes: 0
Views: 58
Reputation: 19905
Use 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))
Upvotes: 1