First commit
This commit is contained in:
46
MgrUtilityPoleOCR.py
Normal file
46
MgrUtilityPoleOCR.py
Normal file
@@ -0,0 +1,46 @@
|
||||
import cv2
|
||||
import pytesseract
|
||||
from pytesseract import Output
|
||||
|
||||
img_path = '/Volumes/ExSSD/Working/용공추 사진/2,3월 데이터/Pole/20250307_153821.jpg'
|
||||
|
||||
# 이미지 경로
|
||||
img = cv2.imread(img_path)
|
||||
|
||||
# 전처리
|
||||
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
||||
blur = cv2.GaussianBlur(gray, (3, 3), 0)
|
||||
thresh = cv2.adaptiveThreshold(
|
||||
blur, 255,
|
||||
cv2.ADAPTIVE_THRESH_MEAN_C,
|
||||
cv2.THRESH_BINARY_INV,
|
||||
11, 2
|
||||
)
|
||||
|
||||
# OCR
|
||||
custom_config = r'--oem 3 --psm 6'
|
||||
data = pytesseract.image_to_data(
|
||||
thresh, lang='kor+eng',
|
||||
config=custom_config,
|
||||
output_type=Output.DICT
|
||||
)
|
||||
|
||||
# 보안등 아래 숫자 찾기
|
||||
target_text = '보안등'
|
||||
number_below = None
|
||||
|
||||
for i, word in enumerate(data['text']):
|
||||
if word.strip() == target_text:
|
||||
for j in range(i + 1, len(data['text'])):
|
||||
if data['text'][j].strip().isdigit() and data['top'][j] > data['top'][i]:
|
||||
number_below = data['text'][j].strip()
|
||||
break
|
||||
break
|
||||
|
||||
print(f"보안등 아래 숫자: {number_below}")
|
||||
|
||||
# 디버깅용: 전체 텍스트 출력
|
||||
print("\n전체 인식 텍스트:")
|
||||
for word in data['text']:
|
||||
if word.strip():
|
||||
print(word.strip())
|
||||
Reference in New Issue
Block a user