반응형
오늘은 OpenCV로 Python에서 이미지를 읽어오고, 이미지에 글자를 합성하는 방법에 대해 알아보도록 하겠습니다.
1. OpenCV로 이미지 읽어오기
12월이고 날씨도 추우니까 겨울 사진을 가지고 왔습니다.
각자의 경로를 설정하시고, 다음과 같이 사진을 불러오시면 됩니다.
cv2.imread(path, flag)
flag : 이미지를 읽는 방식
•cv2.IMREAD_COLOR : 컬러 이미지 Loading. 이미지의 투명성은 무시됨
•cv2.IMREAD_GRAYSCALE : 흑백 모드 이미지 Loading
•cv2.IMREAD_UnCHANGED : 투명성을 포함한 이미지 Loading
|
import cv2 |
|
img = cv2.imread('./winter.jpg', cv2.IMREAD_UNCHANGED) |
2. 읽어온 이미지 및 이미지의 사이즈 확인
cv2.imshow(window title , 이미지)
|
# 이미지 확인 |
|
cv2.imshow('Winter', img) |
|
# 이미지의 사이즈 확인 |
|
img.shape #(height, width , channel) |
|
# (538, 804, 3) |
4. OpenCV로 이미지에 글자 합성하기
cv2.putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin)
Parameter | 설명 |
img | 불러온 이미지 |
text | 출력할 문자 |
org | 출력할 문자의 시작 위치좌표 - text의 좌측 하단 / (X좌표, Y좌표) |
fontFace | 폰트의 종류 cv2.FONT_HERSHEY_SIMPLEX : 0 - 중간 크기 산세리프 폰트 cv2.FONT_HERSHEY_PLAIN : 1 - 작은 크기 산세리프 폰트 cv2.FONT_HERSHEY_DUPLEX : 2 - 2줄 산세리프 폰트 cv2.FONT_HERSHEY_COMPLEX : 3 - 중간 크기 세리프 폰트 cv2.FONT_HERSHEY_TRIPLEX : 4 - 3줄 세리프 폰트 cv2.FONT_HERSHEY_COMPLEX_SMALL : 5 -COMPLEX 보다 작은 크기 cv2.FONT_HERSHEY_SCRIPT_SIMPLEX : 6 - 필기체 스타일 폰트 cv2.FONT_HERSHEY_SCRIPT_COMPLEX : 7 - 복잡한 필기체 스타일 cv2.FONT_ITALIC : 16 - 이탈릭체 |
fontScale | 폰트의 크기 |
color | 폰트 색상 blue = (255, 0, 0) green= (0, 255, 0) red= (0, 0, 255) white = (255, 255, 255) |
thickness | 폰트의 두께 |
lineType | 선의 종류 (디폴트 : cv.Line_8) - LINE_8 : 8-connected line - LINE_4 : 4-connecterd line - LINE_AA : antialiased line |
bottomLeftOrigin | org 사용 옵션. True : 좌측 하단. False : 좌측 상단 |
|
# 폰트 색상 지정 |
|
blue = (255, 0, 0) |
|
green= (0, 255, 0) |
|
red= (0, 0, 255) |
|
white= (255, 255, 255) |
|
# 폰트 지정 |
|
font = cv2.FONT_HERSHEY_PLAIN |
|
|
|
# 이미지에 글자 합성하기 |
|
img = cv2.putText(img, "It's Winter", (350, 40), font, 2, blue, 1, cv2.LINE_AA) |
|
|
|
# 이미지 보여주고 창 끄기 |
|
cv2.imshow('winter' , img) |
|
cv2.waitKey(0) |
|
cv2.destroyAllWindows() |
5. 이미지 저장
이제 글자가 합성된 이미지를 다른 이름으로 저장하고 윈도우 창을 닫도록 하겠습니다.
cv2.imwrite(저장할 이름, 이미지)
cv2.waitKey(0) : 화면에 이미지를 표시후 사용자가 키보드를 누를 때 까지 대기
cv2.destroyAllWindows() : 모든 윈도우 창 끄기
|
# 다른이름으로 저장하기 |
|
cv2.imwrite("winter2.png",img) |
지금까지 이미지를 불러와 이미지에 글자를 합성하는 방법에 대해 알아보았습니다!
이미지 출처 : blog.bccard.com/3061#recentEntries
출처 : https://coding-moomin.tistory.com/9