개요

OpenCV로 이미지 다루는 게 처음이시라면?
기초부터 실습까지 따라하며 이미지 읽기, 출력, 처리, 블렌딩까지 완전 정복해보게요!
마지막엔 재미있는 블렌딩 게임도 직접 만들어볼 수 있어요!

OpenCV 기초 다지기

1. 이미지 불러오기 & 출력

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()로 창 닫기~


2. 이미지 크기 & 속성 확인

print(img.shape)  # (높이, 너비, 채널 수)

예: (512, 512, 3) → 512x512 크기의 컬러 이미지 (RGB)


3. 이미지 저장

cv2.imwrite('saved_img.png', img)

이미지 편집 후 저장하고 싶을 때 아주 유용해요!!


4. 색상 공간 바꾸기

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 흑백 이미지로 변환
cv2.imshow('Gray Image', gray)

컬러 → 흑백 변환, 밝기 정보만 남겨서 저장 용량도 절약!


5. 도형, 텍스트 그리기

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
작성자 : 발라

profile
능숙한 바이브코딩을 할 수 있게 됨을 꿈꾸며

0개의 댓글