У меня есть изображения, которые я прочитал позже в определенном формате, мне нужно найти контуры и записать все контурные изображения в указанную выходную папку. Затем я должен создать подпапку под именем файла и записать сегментированные изображения в соответствующие папки. До сих пор я могу читать изображения в указанном формате, в то время как я могу найти контуры, но не могу записать все эти изображения контуров в определенную папку.
import cv2
import os, os.path
print (cv2.__version__)
imageDir = "C:/Users/animesh.singh/Downloads/Assignment/" #specify your path here
image_path_list = []
valid_image_extensions = [".jpg", ".jpeg", ".png", ".tif", ".tiff"]
#specify your valid extensions here
valid_image_extensions = [item.lower() for item in valid_image_extensions]
for file in os.listdir(imageDir):
extension = os.path.splitext(file)[1]
if extension.lower() not in valid_image_extensions:
continue
image_path_list.append(os.path.join(imageDir, file))
for imagePath in image_path_list:
img = cv2.imread(imagePath)
if img is None:
continue
cv2.imshow(imagePath, img)
key = cv2.waitKey(0)
if key == 27: # escape
break
cv2.destroyAllWindows()
for imagePath in image_path_list:
ret, thresh = cv2.threshold(img,0,255,cv2.THRESH_BINARY_INV)
edges = cv2.Canny(img, 100, 200)
cv2.imshow(imagePath,thresh)
cv2.imshow(imagePath,edges)
key = cv2.waitKey(0)
cv2.destroyAllWindows()
contours, hierarchy = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
cv2.drawContours(img, [contour], 0, (0, 0, 255), 3)
cv2.imwrite('C:/Users/animesh.singh/Downloads/Assignment/contour_images/1 (103)_N_0_0_CARD_Contour_Output.jpg', img)
Я хочу:
• Считайте все изображения из папки, которые принимают все форматы изображений, кроме PDF.
• Найти контуры и записать все контурные изображения в указанную выходную папку.
• Создайте подпапку под именем файла и запишите сегментированные изображения в соответствующие папки.
Входные изображения:
1
2:
3