OpenCV 비전 실무1장 · AI 비전과 OpenCV 개발환경15 / 22← 이전목차다음 →MetaContents

1장. AI 비전과 OpenCV 개발환경

실습 1 — 개발환경 점검하기

설치가 제대로 됐는지 코드로 확인합니다. 파이썬과 패키지의 버전, OpenCV 가 읽을 수 있는 파일 형식, 실습 데이터 폴더의 파일을 차례로 봅니다. 가상환경을 켜고 data 폴더에서 실행합니다.

1단계. 파이썬과 가상환경 확인하기

Python
import sys
from pathlib import Path

# 파이썬 버전: "3.14.6 (tags/...)" 처럼 길게 나오므로 빈칸 앞의 번호만 자른다
print("파이썬:", sys.version.split()[0])
# 지금 파이썬 프로그램 파일의 끝 세 칸. .venv 가 보이면 가상환경의 파이썬이다
print("실행 파일:", "\\".join(Path(sys.executable).parts[-3:]))
# 가상환경 안이면 sys.prefix(지금 환경)와 sys.base_prefix(원래 파이썬)가 다르다
print("가상환경 안인가:", sys.prefix != sys.base_prefix)
출력
파이썬: 3.14.6
실행 파일: .venv\Scripts\python.exe
가상환경 안인가: True

2단계. 패키지 버전 찍기

Python
import cv2
import matplotlib
import numpy as np

# 패키지마다 __version__ 에 버전 글자가 들어 있다
for name, module in [("OpenCV", cv2), ("NumPy", np), ("Matplotlib", matplotlib)]:
    print(f"{name:11}{module.__version__}")
출력
OpenCV     5.0.0
NumPy      2.5.4
Matplotlib 3.11.2

3단계. OpenCV 가 다룰 수 있는 형식 보기

Python
import cv2

# getBuildInformation(): OpenCV 를 만들 때 함께 넣은 기능 목록(긴 글)을 돌려준다
info = cv2.getBuildInformation()
# 그림 형식(PNG, JPEG)과 동영상 읽기(FFMPEG 등)에 관한 줄만 골라 찍는다
wanted = ("PNG:", "JPEG:", "FFMPEG:", "DirectShow:", "Media Foundation:")
for line in info.splitlines():
    if line.strip().startswith(wanted):
        print(line.strip())
출력
JPEG:                        build-libjpeg-turbo (ver 3.1.2-70)
PNG:                         build (ver 1.6.57)
FFMPEG:                      YES (prebuilt binaries)
DirectShow:                  YES
Media Foundation:            YES

4단계. 실습 데이터 폴더 둘러보기

Python
import os

# 지금 작업 폴더의 마지막 이름. data 여야 실습 코드의 파일 이름이 맞는다
print("작업 폴더:", os.path.basename(os.getcwd()))
# out_ 으로 시작하는 것은 실습이 만드는 결과물이라 빼고, 원본의 개수를 센다
originals = sorted(name for name in os.listdir(".") if not name.startswith("out_"))
print("원본 파일과 폴더:", len(originals), "개")
# 그 가운데 1장에서 쓰는 것만 크기와 함께 본다(장마다 쓰는 파일은 data.md 에 모여 있다)
for name in ["fruit_stand.png", "ch01_samples"]:
    kind = "폴더" if os.path.isdir(name) else f"{os.path.getsize(name):,}바이트"
    print(f"{name:20}{kind}")
출력
작업 폴더: data
원본 파일과 폴더: 54 개
fruit_stand.png     9,891바이트
ch01_samples        폴더

코드 설명

  • sys.prefix != sys.base_prefix 는 가상환경 안에서 실행하면 True 입니다. False 가 나오면 가상환경을 켜지 않은 것입니다.
  • module.__version__ 은 패키지의 버전 글자입니다. 교안의 출력과 버전이 조금 달라도 이 과정의 코드는 대부분 그대로 돌아갑니다.
  • cv2.getBuildInformation() 은 OpenCV 에 함께 들어간 기능의 목록입니다. PNG, JPEG 이 보이면 그림 파일을, FFMPEG 이 YES 면 동영상 파일을 읽을 수 있습니다.
  • os.listdir(".") 은 지금 폴더의 이름 목록, os.path.getsize 는 파일의 크기(바이트)입니다. 이 장의 그림은 모두 10KB 가 안 되는 작은 파일입니다.
← 이전 절1장 · 실습 지도다음 절 →1장 · 실습 2 — 숫자로 첫 그림 만들기