
OpenCV로 이미지 다루는 게 처음이시라면?
기초부터 실습까지 따라하며 이미지 읽기, 출력, 처리, 블렌딩까지 완전 정복해보게요!
마지막엔 재미있는 블렌딩 게임도 직접 만들어볼 수 있어요!
import cv2
img = cv2.imread('./data/img1.png') # 이미지 불러오기
cv2.imshow('My Image', img) # 이미지 출력
cv2.waitKey(0) # 아무 키 입력 전까지 대기
cv2.destroyAllWindows()
cv2.imread로 이미지 불러오고cv2.imshow로 창에 띄움!
waitKey는 대기 시간,0이면 무한대기.destroyAllWindows()로 창 닫기~
print(img.shape) # (높이, 너비, 채널 수)
예:
(512, 512, 3)→ 512x512 크기의 컬러 이미지 (RGB)
cv2.imwrite('saved_img.png', img)
이미지 편집 후 저장하고 싶을 때 아주 유용해요!!
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 흑백 이미지로 변환
cv2.imshow('Gray Image', gray)
컬러 → 흑백 변환, 밝기 정보만 남겨서 저장 용량도 절약!
cv2.line(img, (0, 0), (512, 512), (255, 0, 0), 5)
cv2.putText(img, 'OpenCV', (10, 500), cv2.FONT_HERSHEY_SIMPLEX, 2, (255, 255, 255), 3)
이미지 위에 직접 그리거나 텍스트 넣기 가능해요!!
두 이미지를 겹쳐서 합치는 것이에요!
비율에 따라 어떤 이미지가 더 많이 보일지도 조절 가능히죠~
dst = cv2.addWeighted(img1, 0.7, img2, 0.3, 0) # 70% + 30% 블렌딩
import cv2
def onChange(x):
alpha = cv2.getTrackbarPos('Alpha', 'Blend') / 100
blended = cv2.addWeighted(img1, alpha, img2, 1 - alpha, 0)
cv2.imshow('Blend', blended)
img1 = cv2.imread('./data/img1.png')
img2 = cv2.imread('./data/img2.jpg')
cv2.namedWindow('Blend')
cv2.createTrackbar('Alpha', 'Blend', 0, 100, onChange)
onChange(0) # 초기 출력
cv2.waitKey(0)
cv2.destroyAllWindows()
createTrackbar()로 슬라이더 만들고
getTrackbarPos()로 실시간 조절!
마우스로 조절하면서 이미지가 섞이는 걸 눈으로 확인할 수 있어요!
이미지 불러오기, 흑백 변환, 텍스트 삽입과 이미지 블렌딩으로 '게임처럼' 체험 가능!
작성일 : 2025.06.16
작성자 : 발라