Написание функций и запуск программы в командной строке - PullRequest
1 голос
/ 15 апреля 2019

Я решил одну из проблем, где мне нужно:

  • Считать все изображения из папки, которые принимают все форматы изображений, кроме PDF.
  • Найти контуры и записатьвсе контурные изображения в указанной выходной папке.
  • Создайте подпапку под именем файла и запишите сегментированные изображения в соответствующие папки.

Я сделал программу для неев Python, но теперь у меня возникают проблемы при написании функций для каждой из проблемных точек и выполнения программы с помощью командной строки.

В основном мне нужно написать общий код, чтобы в будущем, если я получу новые изображения, я не 'не нужно менять код (это означает, что он должен запрашивать входные файлы на командной консоли внутри файла python, будет общий код, применимый для любого файла).

import cv2
import numpy as np 
import os

os.getcwd()

os.chdir("C:/Users/ani/Downloads/Assignment")

# variable

filename = "1 (103)_A_0_0_NAME"

# create a folder for this image

path = "C:/Users/ani/Desktop//"+filename

if not os.path.exists(path):

       os.makedirs(path)


# load image in grayscale

img = cv2.imread(filename+".jpg",0)

# threshold image

ret,mask = cv2.threshold(img,240,255,cv2.THRESH_BINARY_INV)

# find contours

contours, hier = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# sort contours

sorted_ctrs = sorted(contours, key=lambda ctr: cv2.boundingRect(ctr)[0])

for i in range(len(sorted_ctrs)):

        # get contour

        cnt = sorted_ctrs[i]

        # get the dimensions of the boundingRect

        x,y,w,h = cv2.boundingRect(cnt)

        # create a subimage based on boundingRect

        sub_img = img[y:y+h,x:x+w]

        sub_img = ~sub_img

        # save image of contour with indexed name

        cv2.imwrite(path +"\contour_"+str(i)+".jpg", sub_img)

Я хочу общий код, который принимаетввод для файла изображения в командной строке, который в основном означает файл кода функции Python, который выполняет все 3 шага без указания ввода fрасположение файла в файле программы.(Входной файл прилагается)

1-й:

enter image description here

2-й:

enter image description here

3-й:

enter image description here

1 Ответ

0 голосов
/ 15 апреля 2019

Похоже, вы хотите знать " Как читать / обрабатывать аргументы командной строки? ". См. Ссылку для более подробного ответа, но вкратце - используйте sys.argv для доступа к ним:

import sys
print(sys.argv[1:])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...