티스토리 뷰

기타

[영상처리]OpenCV

코딩계란 2024. 2. 20. 16:18
728x90

개요

  • Intel에서 만든 영상 처리와 컴퓨터 비전 관련 오픈 소스 라이브러리 
  • C/C++ 로 구현했는 데 여러 플랫폼에서 C, C++, Python, Java, C#, Javascript 언어로 사용 가능 
  • MMX나 SSE 명령어를 통해서 고속의 알고리즘을 구현. 실시간 비전 응용의 강점을 가지고 있다. 
  • 영상 및 비디오 입출력, 영상 처리, 컴퓨터 비전 관련 기본 알고리즘, 기계학습모듈이 내장
  • 최근의 버전에서는 딥러닝 모델도 추가
  • CUDA와 Open CL 인터페이스가 개발
 

Home

OpenCV provides a real-time optimized Computer Vision library, tools, and hardware. It also supports model execution for Machine Learning (ML) and Artificial Intelligence (AI).

opencv.org

 

OpenCV: OpenCV-Python Tutorials

Core Operations In this section you will learn basic operations on image like pixel editing, geometric transformations, code optimization, some mathematical tools etc.

docs.opencv.org

 

 

설치 및 확인(python)

 

윈도우 버전 설치(명령어 창에 입력)

pip install opencv-python

 

설치 확인(명령어 창에 순서대로 입력)

python
import cv2
cv2.__version__

 

윈도우 제어

윈도우 생성 

cv2.namedWindow(이름[,플래그])
  • 플래그는 윈도우 크기 관련 옵션: cv.WINDOW_NORMAL이나 cv2.WINDOW_AUTOSIZE
  • 일반적으로 파이썬은 옵션의 값을 문자열로 지정한다. 그러나 Open CV에서는 상수를 이용해서 설정한다. 

윈도우 출력

cv2.imshow(윈도우 이름, 윈도우에 표시되는 영상 배열 - numpy.ndarray)

 

윈도우 파괴

cv2.destroyALLWindows()

 

 

영상 입출력 

영상 가져오기 

cv2.imread("이미지 파일 경로", 이미지 옵션) -> numpy.adarray

 

이미지 옵션

  • cv2.IMREAD_UNCHANGED: 알파채널 포함
  • cv2.IMREAD_GRAYSCALE: 알파채널 포함
  • cv2.IMREAD_COLOR:
  • cv2.IMREAD_ ANYDEPTH
  • cv2.IMREAD_ANYCOLOR   

matplotlib.pyplot.imshow

  • matplotlib를 이용해서 이미지 출력
  • numpy의 ndarray나 PIL 이미지를 출력 
  • 컬러 이미지를 출력할 때 BGR 순으로 출력하기 때문에 빨강 색과 파랑 색이 반전되서 출력된다. 그러므로 출력 시 cv2.cvtColor(이미지 데이터, dv2.COLOR_BGR2RGB)를 이용해서 색상 값의 순서를 변경해주어야 한다. 

실습

import cv2
from matplotlib import pyplot as plt

#이미지를 가져오기 
image = cv2.imread("Downloads/python_opencv-main/python_opencv-main/data/plane.jpg", cv2.IMREAD_COLOR)

img_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

#이미지 출력
plt.imshow(img_rgb)
plt.show()

#흑백 이미지의  shape(차원): 2차원 좌표에 값이 있는 구조 

print(image.shape)

 

 

 

 

 

728x90