
안녕하세요! 오늘은 저처럼 OpenCV를 처음 접하는 사람들을 위해
설치부터 이미지 읽기·출력, 그리고 옵션까지 차근차근 정리해볼게요!
인공지능은 크게 4가지 세부 영역으로 나눌 수 있어요!
눈으로 감지할 수 있는 데이터를 주로 활용하여 인공지능을 구현하는 기술
쉬운 예시
1) 스마트폰의 얼굴 인식
2) 사진 속 객체 탐지/분류
3) 유튜브 자막 자동 생성 (시각지능 + 언어지능)
1) 객체 탐지: 검은색 티셔츠와 안경을 동시에 찾음
2) 이미지 분류: 이 사진이 주황색 사진인지, 흰색 사진인지 분류
3) 세분화: 이미지에서 대상의 윤곽을 픽셀 단위로 정확하게 나눔
4) 얼굴/홍채/정맥 인식
5) OCR (광학 문자 인식)
컴퓨터는 당연한 소리이지만 사람이 아니기에 사진·영상을 보는 방식은 사람과 달라요.
사진은 사람처럼 시신경을 이용하여 빛의 파장 등을 통하여 읽는 것이 아닌 수많은 숫자(픽셀 값)로 읽고 판단하고 계산하는 방식을 사용해요.
1) 날씨/조명/각도에 따라 인식 오류 발생
2) 사생활 이슈: 얼굴 인식, 감시 문제
3) 많은 데이터 필요
4) AI 오판 가능성
1) OpenCV - 오픈소스로 제공되는 Computer Vision 라이브러리
2) CNN - 합성곱 신경망
3) 객체 탐지 모델 (YOLO 등)
# 기본 설치
pip install opencv-python
# 확장 모듈까지 설치하고 싶으면
pip install opencv-contrib-python
설치 후 버전 확인:
import cv2
print(cv2.__version__) # 예) 4.8.0
import cv2
# imread(파일경로, 모드)
img = cv2.imread('./images/sample.jpg', cv2.IMREAD_COLOR)
cv2.IMREAD_COLOR : 컬러 이미지로 불러오기 (투명 채널 무시) cv2.IMREAD_GRAYSCALE : 흑백 이미지로 불러오기 cv2.IMREAD_UNCHANGED : 투명 채널 포함해 그대로 불러오기 필요한 모드 선택해서 사용하면 돼 😊
# 윈도우에 이미지 띄우기
cv2.imshow('Sample Image', img)
# 키 입력 대기 (0: 무한 대기)
cv2.waitKey(0)
# 모든 창 닫기
cv2.destroyAllWindows()
Jupyter Notebook에서는
imshow대신 matplotlib을 사용하면 편해!import matplotlib.pyplot as plt plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.axis('off') plt.show()
# imwrite(저장경로, 이미지)
success = cv2.imwrite('./output/result.jpg', img)
if success:
print('이미지 저장 완료!')
else:
print('저장 실패...')
import cv2
# 원본 읽기
img = cv2.imread('./images/sample.jpg')
# 그레이 변환
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 결과 출력
cv2.imshow('Gray Image', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.cvtColor() 함수로 색 공간 변환 cv2.COLOR_BGR2GRAY 등 다양한 변환 코드 활용 가능 지금까지 OpenCV 설치부터
까지 살펴봤어요!
다음 포스트에서는 이진화 방법에 대한 내용 정리, 자동으로 문턱값을 찾아주는 오츠 알고리즘 같은
조금 더 심화된 내용을 다뤄볼 예정이니 기대해주세요!
궁금한 점 있으면 댓글로 남겨주세요! (>_<)
작성일 : 2025.06.11
작성자 : 발라