이미지에서 텍스트 영역을 찾아주는 OpenCV Python의 MSER 예제OpenCV/OpenCV 강좌2023. 10. 13. 22:48
Table of Contents
반응형
이미지에서 텍스트 영역을 찾아주는 OpenCV Python의 MSER 예제입니다.
최초작성 2020. 12. 23
import cv2 import os import numpy as np path = os.path.dirname(os.path.realpath(__file__)) + "/f.jpg" img = cv2.imread(path) 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('mser', clone) cv2.waitKey(0) mask = np.zeros((img.shape[0], img.shape[1], 1), dtype=np.uint8) for j,cnt in enumerate(hulls): if j in remove1: continue x, y, w, h = cv2.boundingRect(cnt) margin = 10 cv2.rectangle(mask, (x-margin, y-margin), (x + w + margin, y + h + margin), (255, 255, 255), -1) text_only = cv2.bitwise_and(img, img, mask=mask) cv2.imshow("text only", text_only) cv2.waitKey(0) |
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
CLAHE OpenCV Python 예제 코드 (0) | 2023.10.13 |
---|---|
유사한 사진 찾아주는 Python 코드 (0) | 2023.10.13 |
OpenCV Python - webcam에서 가져온 영상을 mp4로 저장하는 예제 (0) | 2023.10.13 |
OpenCV Python 강좌 – Perspective Transformation (0) | 2023.10.12 |
OpenCV Python 강좌 – 이미지 이동 / 회전 하기 (0) | 2023.10.12 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!