250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Python] OpenCV ๊ธฐ์ดˆ 3 - ์ด๋ฏธ์ง€ ์œ„์— ํ…์ŠคํŠธ ์ž…๋ ฅ ๋ณธ๋ฌธ

๐Ÿ–ฅ๏ธ Computer Vision/Opencv

[Python] OpenCV ๊ธฐ์ดˆ 3 - ์ด๋ฏธ์ง€ ์œ„์— ํ…์ŠคํŠธ ์ž…๋ ฅ

ใ…… ใ…œ ใ…” ใ…‡ 2022. 8. 3. 23:00
728x90

1. OpenCV์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธ€๊ผด ์ข…๋ฅ˜

1. cv2.FONT_HERSHEY_SIMPLEX : ๋ณดํ†ต ํฌ๊ธฐ์˜ ์‚ฐ ์…ฐ๋ฆฌํ”„ ๊ธ€๊ผด
2. cv2.FONT_HERSHEY_PLAIN : ์ž‘์€ ํฌ๊ธฐ์˜ ์‚ฐ ์…ฐ๋ฆฌํ”„
3. cv2.FONT_SCRIPT_SIMPLEX : ํ•„์ฒด ์Šคํƒ€์ผ ๊ธ€๊ผด
4. cv2.HERSHEY_TRIPLEX : ๋ณดํ†ต ํฌ๊ธฐ์˜ ์„ธ๋ฆฌํ”„ ๊ธ€๊ผด
5. cv2.FONT_ITALIC : ๊ธฐ์šธ์ž„(์ดํƒˆ๋ฆญ์ฒด)

 

import cv2
import numpy as np

img = np.zeros((480,640,3), dtype=np.uint8)

SCALE = 1
COLOR = (255,255,255)
THICKNESS = 1


cv2.putText(img, "Hello", (20,50),cv2.FONT_HERSHEY_SIMPLEX,SCALE, COLOR, THICKNESS)
# ๊ทธ๋ฆด ์œ„์น˜, ํ…์ŠคํŠธ ๋‚ด์šฉ, ์‹œ์ž‘ ์œ„์น˜, ํฐํŠธ ์ข…๋ฅ˜, ํฌ๊ธฐ, ์ƒ‰๊น”, ๋‘๊ป˜

cv2.putText(img, "Hello", (20,150),cv2.FONT_HERSHEY_PLAIN,SCALE, COLOR, THICKNESS)
cv2.putText(img, "Hello", (20,250),cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,SCALE, COLOR, THICKNESS)
cv2.putText(img, "Hello", (20,350),cv2.FONT_HERSHEY_TRIPLEX,SCALE, COLOR, THICKNESS)
cv2.putText(img, "Hello", (20,450),cv2.FONT_HERSHEY_TRIPLEX | cv2.FONT_ITALIC,SCALE, COLOR, THICKNESS)


cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

๋นˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ธ€๊ผด๋ณ„๋กœ 'Hello' ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜์˜€๋‹ค. 

 

2. ํ•œ๊ธ€ ๋ฌธ์ž์—ด ์ถœ๋ ฅ

import cv2
import numpy as np

img = np.zeros((480,640,3), dtype=np.uint8)

SCALE = 1
COLOR = (255,255,255)
THICKNESS = 1


cv2.putText(img, "์•ˆ๋…•ํ•˜์„ธ์š”", (20,50),cv2.FONT_HERSHEY_SIMPLEX,SCALE, COLOR, THICKNESS)
# ๊ทธ๋ฆด ์œ„์น˜, ํ…์ŠคํŠธ ๋‚ด์šฉ, ์‹œ์ž‘ ์œ„์น˜, ํฐํŠธ ์ข…๋ฅ˜, ํฌ๊ธฐ, ์ƒ‰๊น”, ๋‘๊ป˜


cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

๋ฌธ์ž์—ด์— ํ•œ๊ธ€์„ ์ž…๋ ฅํ•˜๋ฉด ์œ„ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋˜์ง€ ์•Š์Œ

 

 

3. ํ•œ๊ธ€ ์šฐํšŒ ๋ฐฉ๋ฒ•

import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image

def myPutText(src,text,pos,font_size,font_color):
    img_pil = Image.fromarray(src)
    draw = ImageDraw.Draw(img_pil)
    font = ImageFont.truetype('fonts/gulim.ttc',font_size)
    draw.text(pos,text,font=font,fill=font_color)
    return np.array(img_pil)

img = np.zeros((480,640,3), dtype=np.uint8)

FONT_SIZE = 30
COLOR = (255,255,255)


img = myPutText(img,'์•ˆ๋…•ํ•˜์„ธ์š”',(20,50),FONT_SIZE, COLOR)
# ๊ทธ๋ฆด ์œ„์น˜, ํ…์ŠคํŠธ ๋‚ด์šฉ, ์‹œ์ž‘ ์œ„์น˜, ํฐํŠธ ์ข…๋ฅ˜, ํฌ๊ธฐ, ์ƒ‰๊น”, ๋‘๊ป˜




cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

PIL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ํ•œ๊ธ€์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. 

myputText ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ด๋ฏธ์ง€, ํ…์ŠคํŠธ ๋‚ด์šฉ, ์‹œ์ž‘ ์œ„์น˜, ํฐํŠธ ์ข…๋ฅ˜, ํฌ๊ธฐ, ์ƒ‰๊น”์„ ์ž…๋ ฅํ•˜๋ฉด ํ•œ๊ธ€ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๋‹ค. 

 

 

728x90
Comments