텍스트
cv2.putText(img, "hyeKjung SIMPLEX", (20,50),cv2.FONT_HERSHEY_SIMPLEX, SCALE, COLOR, THINKNESS)
: 그릴 위치, 텍스트 내용, 시작 위치, 폰트 종류, 크기, 색, 두께
cv2.FONT_HERSHEY_SIMPLEX
: 보통 크기의 산 세리프 글꼴
cv2.FONT_HERSHEY_PLAIN
: 작은 크기의 산 세리프 글꼴
cv2.FONT_HERSHEY_SCRIPT_SIMPLEX
: 필기체 스타일 글꼴
cv2.FONT_HERSHEY_TRIPLEX
: 보통 크기의 세리프 글꼴
cv2.FONT_ITALIC
: 기울임(이탤릭체)
import numpy as np
import cv2
img = np.zeros((480,640,3), dtype=np.uint8)
SCALE = 1
COLOR =(255,255,255)
THINKNESS = 1
cv2.putText(img, "hyeKjung SIMPLEX", (20,50),cv2.FONT_HERSHEY_SIMPLEX, SCALE, COLOR, THINKNESS)
cv2.putText(img, "hyeKjung PLAIN", (20,150),cv2.FONT_HERSHEY_PLAIN, SCALE, COLOR, THINKNESS)
cv2.putText(img, "hyeKjung SCRIPT_SIMPLEX", (20,250),cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, SCALE, COLOR, THINKNESS)
cv2.putText(img, "hyeKjung TRIPLEX", (20,350),cv2.FONT_HERSHEY_TRIPLEX, SCALE, COLOR, THINKNESS)
cv2.putText(img, "hyeKjung ITALIC", (20,450),cv2.FONT_HERSHEY_TRIPLEX | cv2.FONT_ITALIC, SCALE, COLOR, THINKNESS)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
한글
기존 한글 사용 시
cv2.putText(img, "나의 개발 저장소", (20,50),cv2.FONT_HERSHEY_SIMPLEX, SCALE, COLOR, THINKNESS)
한글 우회 방법
import numpy as np
import cv2
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()
파일 저장
이미지 저장
import cv2
img = cv2.imread('../fff/woman.png', cv2.IMREAD_GRAYSCALE)
result = cv2.imwrite('img_save.jpg', img)
print(result)
콘솔
True
동영상 저장
- avi : 비디오와 오디오 데이터를 동시에 저장하는 파일 형식
import cv2
cap = cv2.VideoCapture('../OpenCV/viedo.mp4', cv2.IMREAD_GRAYSCALE)
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
width = round(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = round(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = cap.get(cv2.CAP_PROP_FPS)*2
out = cv2.VideoWriter('output.avi', fourcc, fps, (width, height))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
out.write(frame)
cv2.imshow('video', frame)
if cv2.waitKey(1) == ord('q'):
break
out.release()
cap.release()
cv2.destroyAllWindows()