반응형
OpenCV에서 제공되는 convexHull을 활용하여 이미지 속 텍스트를 검출하는 테스트를 진행해 보겠습니다.
OpenCV 공식 튜토리얼 문서를 기반으로 작성되었으며 자세한 사항은 하단 링크를 참조 바랍니다.
https://docs.opencv.org/3.4/d9/df8/tutorial_root.html
소스 코드
import cv2
img = cv2.imread('./image.png') #- 검출할 이미지 경로
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray,(5, 5),0)
mser = cv2.MSER_create()
regions,_ = mser.detectRegions(gray)
clone = img.copy()
hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]
remove1 = []
for i,c1 in enumerate(hulls):
x, y, w, h = cv2.boundingRect(c1)
r1_start = (x, y)
r1_end = (x+w, y+h)
for j,c2 in enumerate(hulls):
if i == j:
continue
x, y, w, h = cv2.boundingRect(c2)
r2_start = (x, y)
r2_end = (x+w, y+h)
if r1_start[0]> r2_start[0] and r1_start[1] > r2_start[1] and r1_end[0] < r2_end[0] and r1_end[1] < r2_end[1]:
remove1.append(i)
for j,cnt in enumerate(hulls):
if j in remove1: continue
x, y, w, h = cv2.boundingRect(cnt)
margin = 10
cv2.rectangle(clone, (x-margin, y-margin), (x + w + margin, y + h + margin), (0, 255, 0), 1)
cv2.imshow('Text Detection', clone)
cv2.waitKey(0)
테스트
- 적용전
- 적용후
반응형
'Python > OpenCV' 카테고리의 다른 글
[OpenCV] 토막글 - 코랩에서 cv2.imshow 사용 (0) | 2023.07.04 |
---|---|
[OpenCV] 얼굴&눈 영역 인식(+졸음 인식) (0) | 2023.01.29 |
[OpenCV] 웹캠 자동 캡쳐 (0) | 2022.09.01 |
[OpenCV] cvlib 영상 객체 인식 / (+cvlib GPU연동) (0) | 2022.03.08 |
[OpenCV] cvlib 이미지 객체 인식 (0) | 2022.03.08 |
댓글