Python 명령 행 인자 argparse 쓰기 그림 경로 작업
명령 행 인 자 는 실행 할 때 프로그램/스 크 립 트 를 주 는 표지 입 니 다.그것들 은 실행 할 수 있 도록 우리 프로그램의 추가 정 보 를 포함 하고 있다.
모든 프로그램 에 명령 행 인자 가 있 는 것 은 아 닙 니 다.모든 프로그램 이 필요 한 것 은 아 닙 니 다.
왜 우 리 는 명령 행 인 자 를 사용 합 니까?
위 에서 말 한 바 와 같이 명령 행 매개 변 수 는 실행 할 때 프로그램 에 추가 정 보 를 제공 합 니 다.
이것 은 우리 가 코드 를 바 꾸 지 않 고 동적 으로 프로그램 에 다른 입력 을 제공 할 수 있 도록 해 준다.
함수 인자 와 유사 한 명령 행 인 자 를 그 릴 수 있 습 니 다.각종 프로 그래 밍 언어 에서 함 수 를 설명 하고 호출 하 는 방법 을 알 고 있다 면 명령 행 인 자 를 어떻게 사용 하 는 지 알 게 되면 바로 집 처럼 느껴 질 것 입 니 다.
이것 은 컴퓨터 시각 과 이미지 처리 블 로그 임 을 감안 하여 여기에서 볼 수 있 는 많은 매개 변 수 는 이미지 경로 나 영상 경로 입 니 다.
그럼 shape 라 는 이름 을 만 듭 시다.counter.py 의 새 파일 과 인 코딩 시작:
두 번 째 줄 에서 argparse 를 가 져 옵 니 다.-명령 행 인 자 를 분석 하고 접근 할 수 있 도록 도와 주 는 가방 입 니 다.
그리고 7-12 줄 에서 우 리 는 두 명령 행 인 자 를 분석 합 니 다.코드 는 이 줄 에서 매우 읽 기 쉬 워 서 파 라 메 터 를 포맷 하 는 방법 을 볼 수 있 습 니 다.
우 리 는-input 인 자 를 예 로 들 었 다.
일곱 번 째 줄 에서 우 리 는 Argument Parser 대상 을 ap 로 예화 합 니 다.
그리고 8 줄 과 9 줄 에 저희-input 인 자 를 추가 합 니 다.우 리 는 속기 와 긴 버 전(-i 와-input)을 지정 해 야 하 며,그 중 어떤 표지 도 명령 행 에서 사용 할 수 있다.이것 은 required=True 와 같은 필수 적 인 매개 변수 입 니 다.위 와 같이 도움말 문자열 은 터미널 에 추가 정 보 를 제공 합 니 다.
이와 유사 하 게 10 번 째 줄 과 11 번 째 줄 에서-input 인 자 를 지정 하 는 것 도 필요 합 니 다.
그곳 에서 우 리 는 경 로 를 사용 하여 그림 을 불 러 옵 니 다.그림 경 로 를 입력 하 는 것 은 args[input]에 포함 되 어 있 기 때문에 cv2 의 인자 imread 입 니 다.
쉽 죠?
나머지 줄 은 이미지 처리 에 특 정 된 것 이다.
18-20 줄 에서 우 리 는 세 가지 조작 을 완성 했다.
그림 을 그 레이스 케 일 로 변환 합 니 다.
퍼 지 그 레이스 케 일 이미지.
한도 값 모호 이미지.
우 리 는 모양 의 윤곽 을 찾 아서 그 릴 준 비 를 하고 있다.
23-25 줄 에서 우 리 는 한도 값 이미지 에서 형상 윤곽 을 찾 았 다.
그곳 에서 우 리 는 입력 한 그림 에 윤곽(28 번 과 29 번)을 그립 니 다.
그리고 우 리 는 그림 에 텍스트(32-34 줄)를 조립 하고 배치 합 니 다.텍스트 는 모양 의 총 수 를 포함 합 니 다.
마지막 으로,우 리 는 우리 의-input 이미지 경로 파 라미 터 를 이용 하여 디스크 에 있 는 cv2.imwrite(37 줄)에 그림 을 기록 합 니 다.
두 개의 인자 로 명령 을 실행 합 니 다.
전체 코드 첨부
Codeblock #1: Lines 1-20# import the necessary packages
import argparse
import imutils
import cv2
# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--input", required=True,
help="path to input image")
ap.add_argument("-o", "--output", required=True,
help="path to output image")
args = vars(ap.parse_args())
# load the input image from disk
image = cv2.imread(args["input"])
# convert the image to grayscale, blur it, and threshold it
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5,5), 0)
thresh = cv2.threshold(blurred, 60, 255, cv2.THRESH_BINARY)[1]
# extract contours from the image
cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if imutils.is_cv2() else cnts[1]
# loop over the contours and draw them on the input image
for c in cnts:
cv2.drawContours(image, [c], -1, (0, 0, 255), 2)
# display the total number of shapes on the image
text = "I found {} total shapes".format(len(cnts))
cv2.putText(image, text, (10, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5,
(0, 0, 255), 2)
# write the output image to disk
cv2.imwrite(args["output"], image)
$ python shape_counter.py --input input_01.png --output output_01.png
파 이 썬 명령 행 인자 argparse 가 그림 경 로 를 기록 하 는 것 은 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.