본문 바로가기
함수 설명/컴퓨터 비전 (OpenCV, PIL)

[OpenCV] 이미지 창에 표시하기: cv2.imshow() 사용 및 설명

by First Adventure 2024. 9. 28.
반응형

소개

  cv2.imshow는 OpenCV에서 이미지를 화면에 표시하는 함수입니다. 이미지 처리 파이프라인에서 결과를 시각적으로 확인하거나 디버깅할 때 사용됩니다. 이 함수는 이미지 배열을 창(window)에 표시하며, 창 이름과 이미지 데이터를 인수로 받습니다. 이미지를 출력한 후에는 반드시 cv2.waitKey로 사용자 입력을 기다리거나, 창이 유지되도록 해야 합니다.

 

기본 사용법

# 기본 사용법
import cv2

# 이미지 파일 읽기
image = cv2.imread('image.jpg')

# 'My Image' 창에 이미지 출력
cv2.imshow('My Image', image)

# 키보드 입력을 기다리며 창 유지
cv2.waitKey(0)

# 모든 창 닫기
cv2.destroyAllWindows()

 

# 다양한 옵션
import cv2

# 그레이스케일 이미지 파일 읽기
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# 'Gray Image' 창에 이미지 출력
cv2.imshow('Gray Image', image)

# 5000ms 동안만 창 유지 후 자동 닫기
cv2.waitKey(5000)

# 모든 창 닫기
cv2.destroyAllWindows()

상세 설명

  • 기본 사용법: cv2.imshow('창 이름', 이미지)는 지정된 창에 이미지를 출력합니다.
  • 이미지 유지: cv2.waitKey(0)를 호출하여 사용자의 키보드 입력을 대기할 수 있으며, 0 이외의 값을 사용하면 해당 시간(ms) 동안 창을 유지합니다.
  • 창 닫기: cv2.destroyAllWindows()는 열려 있는 모든 창을 닫습니다. 특정 창을 닫고 싶다면 cv2.destroyWindow('창 이름')을 사용할 수 있습니다.
  • 이미지 출력
    • cv2.imshow는 OpenCV에서 이미지 데이터를 화면에 표시하는 역할을 하며, 배열 형태의 이미지를 시각화합니다.
    • 이 함수는 특히 이미지 처리 중간 단계에서 디버깅을 위해 유용하게 사용됩니다. 예를 들어, 필터 적용 후 결과를 빠르게 확인할 때 사용됩니다.
  • 창 관리
    • OpenCV에서 이미지를 출력할 때는 반드시 cv2.waitKey 함수를 사용하여 창이 닫히지 않도록 유지해야 합니다. 이 함수는 키보드 입력을 기다리며, 시간을 설정하여 자동으로 창이 닫히도록 할 수도 있습니다.
    • 모든 창을 닫으려면 cv2.destroyAllWindows를 호출합니다. 특정 창만 닫고 싶다면 cv2.destroyWindow('창 이름')을 사용할 수 있습니다.

예시 설명

  • 첫 번째 예시에서는 기본적으로 이미지를 읽어온 후, cv2.imshow로 화면에 출력하고, 사용자의 키보드 입력을 기다린 후 창을 닫습니다.
  • 두 번째 예시에서는 그레이스케일 이미지로 읽어온 후, 5000ms 동안 이미지를 화면에 표시하고 자동으로 닫습니다.

 

라이센스

  OpenCV 4.4.0 까지는 3-clause BSD license를 따르고 있으며 자유롭게 사용, 수정, 배포할 수 있으며, 상업적 목적으로도 사용할 수 있습니다.
  OpenCV 4.5.0 이상 부터는 Apache 2 License를 따르고 있습니다. 해당 라이선스는 사용, 수정, 배포, 상업적 이용을 자유롭게 허용하며, 사용자가 해당 소프트웨어의 기여자에 대한 특허 청구를 방지하도록 명시하는 것을 특징으로 합니다. 또한 수정된 코드를 배포할 때 변경 사항을 고지해야 하며, 특허 분쟁 시 관련 권리를 상실할 수 있습니다​.

 

관련 내용

  [OpenCV] 비디오 생성 및 저장하기: cv2.VideoWriter() 사용 및 설명

  [OpenCV] 카메라 및 비디오 파일에서 프레임 읽기: cv2.VideoCapture() 사용 및 설명

  [OpenCV] 이미지의 엣지를 보호하며 부드럽게: cv2.medianBlur() 사용 및 설명

  [OpenCV] 이미지 흐리게 만들기: cv2.GaussianBlur() 사용 및 설명

  [OpenCV] 이미지 색상 공간 변환: cv2.cvtColor() 사용 및 설명

  [OpenCV] 이미지 축소: cv2.pyrDown() 사용 및 설명

  [OpenCV] 이미지 확대: cv2.pyrUp() 사용 및 설명

  [OpenCV] 원 찾기: cv2.HoughCircles() 사용 및 설명

  [OpenCV] 직선 찾기: cv2.HoughLines() 사용 및 설명

  [OpenCV] 경계선 찾기: cv2.Canny() 사용 및 설명

  [OpenCV] 적응형 임계값 처리하기: cv2.adaptiveThreshold() 사용 및 설명

  [OpenCV] 이미지 임계값 처리: cv2.threshold() 사용 및 설명

  [OpenCV] 이미지의 원근 변환: cv2.warpPerspective() 사용 및 설명

  [OpenCV] 이미지 기하학적 변환: cv2.warpAffine() 사용 및 설명

  [OpenCV] 이미지 좌우, 상하 반전하기: cv2.flip() 사용 및 설명

  [OpenCV] 이미지 회전: cv2.rotate() 사용 및 설명

  [OpenCV] 이미지 크기 조절: cv2.resize() 사용 및 설명

  [OpenCV] 이미지 팽창하기: cv2.dilate() 사용 및 설명

  [OpenCV] 이미지 침식하기: cv2.erode() 사용 및 설명

  [OpenCV] 이미지 블렌딩하기: cv2.addWeighted() 사용 및 설명

  [OpenCV] 이미지 간 빼기: cv2.subtract 사용법() 사용 및 설명

  [OpenCV] 이미지 간 더하기: cv2.add() 사용 및 설명

  [OpenCV] 이미지에 다각형 그리기: cv2.polylines() 사용 및 설명

  [OpenCV] 이미지에 원 그리기: cv2.circle() 사용 및 설명

  [OpenCV] 이미지에 사각형 그리기: cv2.rectangle() 사용 및 설명

  [OpenCV] 이미지에 선 그리기: cv2.line 사용법() 사용 및 설명

  [OpenCV] 이미지에 텍스트 추가하기: cv2.putText() 사용 및 설명

  [OpenCV] 이미지 창에 표시하기: cv2.imshow() 사용 및 설명

  [OpenCV] 이미지 파일 저장하기: cv2.imwrite() 사용 및 설명

  [OpenCV] 이미지 파일 로드하기: cv2.imread() 사용 및 설명

반응형