스터디

DJANGO 프로젝트의 Entry Point 및 내부 소스 분석

anyway03 2025. 12. 26. 14:18

manage.py

#!/usr/bin/env python

Shebang(쉬뱅) 라인: 이 파일을 실행할 때 어떤 프로그램(python)을 사용할지 시스템에 알려주는 설정

 

from setproctitle import setproctitle

실행 중인 프로세스의 이름을 변경하는 라이브러리

 

 

진입

@csrf_exempt

 

보안 검사(CSRF)를 이 함수에서만 제외

 

fs = FileSystemStorage(...)

 

파일을 저장할 도구(저장소)를 준비

 

 

OpenCV(이미지 처리 라이브러리)

코드 내용  
cv2.imread / cvtColor 이미지 파일을 읽어오고, 처리 속도를 높이기 위해 색상을 **그레이스케일(회색)**로 변환합니다.
cv2.threshold(..., OTSU) 이진화: 아주 밝은 회색은 흰색으로, 어두운 회색은 검은색으로 딱 나누어 글자를 도드라지게 합니다.
sobel / filter2D 에지(테두리) 검출: 글자의 외곽선을 따서 글자 덩어리가 어디 있는지 찾기 쉽게 만듭니다.
cv2.findContours(...) 윤곽선 찾기: 이미지 안에서 연결된 덩어리(글자나 표의 칸)들의 좌표를 찾아냅니다.

 

 

코드 내용 상세 설명
cv2.boundingRect(contour) 찾아낸 윤곽선을 감싸는 **직사각형 박스 좌표(x, y, 가로, 세로)**를 계산합니다.
if w > img.shape[1] / 8... 너무 작은 점이나 노이즈는 무시하고, 일정 크기 이상의 "글자 덩어리"만 골라냅니다.
cv2.resize(..., INTER_CUBIC) 이미지 확대: 글자가 너무 작으면 잘 안 읽히기 때문에 2배로 키워주는 전처리를 합니다.
cv2.imwrite(...) 잘라낸 박스 이미지를 파일로 저장합니다. (나중에 OCR 엔진에 보낼 용도)

'스터디' 카테고리의 다른 글

파이썬 스터디 - nonlocal  (0) 2026.01.10