[DIP] cv2.imshow 사용예

2024. 9. 16. 13:39·Programming/DIP
728x90
728x90

OpenCV 에서 제공하는 imshow의 사용 예제 문서임.

안정적인 동작을 원한다면, matplotlib를 사용하는 경우가 훨씬 낫다.

생각보다 cv2.imshow는 사용할 때 호환성 문제 등이 생각보다 많다.

더보기

https://dsaint31.tistory.com/804

 

[DIP] plt.imshow: matplotlib.pyplot

plt.imshow()는 matplotlib에서 이미지를 시각화할 때 사용되는 함수 개인적으로 가장 선호하는 방식임.Signature:plt.imshow(X, cmap=None, norm=None, interpolation=None, aspect=None, alpha=None, vmin=None, vmax=None, origin=None, e

dsaint31.tistory.com


예제 코드

위와 같은 이미지를 창으로 확인가능함.

from skimage import data
import cv2

# skimage 라이브러리에서 고양이 테스트 이미지를 불러옴
cat = data.chelsea()  # Chelsea 테스트 이미지(고양이)를 로드
cat = cat[...,::-1]
print(f'{cat.shape=}')  # 이미지의 크기(shape)를 출력

# 이름이 지정된 창을 생성 (선택 사항) 및 창 크기 조정 가능
cv2.namedWindow('test_cat', cv2.WINDOW_NORMAL)  # WINDOW_NORMAL 플래그는 창 크기 조정을 허용
cv2.imshow('test_cat', cat)  # 'test_cat' 창에 고양이 이미지를 표시

# ESC 키나 창 닫기 이벤트가 발생할 때까지 창을 유지하는 무한 루프
while True:
    k = cv2.waitKey(10)  # 10밀리초마다 키 입력 대기
    if k & 0xFF == 27:  # ESC 키(ASCII 코드 27)가 입력되면 루프 종료
        break
    if cv2.getWindowProperty('test_cat', cv2.WND_PROP_VISIBLE) < 1:  # 창이 닫힌 경우
        break

# 루프 종료 후 모든 OpenCV 창을 닫음 (ESC 키나 창 닫기 이벤트 발생 시)
cv2.destroyAllWindows()

위의 예제에서 보이듯이 while 문 이후의 처리를 해주는게 여러가지로 편함.


주요 요소 설명:

  • skimage.data.chelsea(): skimage 라이브러리에서 제공하는 고양이 이미지(테스트 이미지)를 로드
  • cv2.namedWindow: 지정된 이름의 창을 생성하고, cv2.WINDOW_NORMAL 플래그를 통해 창 크기 조정이 가능하도록 설정.
  • cv2.imshow: 지정된 창에 이미지를 표시.
  • cv2.waitKey(10): 10밀리초마다 키 입력을 대기하며, ESC 키나 창 닫기 이벤트가 발생하면 루프를 종료.
  • cv2.getWindowProperty: 창이 여전히 열려 있는지 확인하고, 닫힌 경우 루프를 종료.
  • cv2.destroyAllWindows(): 루프가 끝난 후 모든 OpenCV 창을 닫음.

같이 보면 좋은 자료들

2024.09.22 - [Programming/DIP] - [DIP] Image 다루기: 기본편 1; (Summary)

 

[DIP] Image 다루기: cv2-기본편 1 (Summary)

openCV를 통한 이미지를 다루기 위한 기본 내용Pillow는 다음을 참고:https://ds31x.tistory.com/465 Pillow 사용법 - Basic 01Pillow 라이브러리의 기본적인 사용법을 다룬다. 2024.06.03 - [Python] - [Python] PIL, Pillow, Ope

dsaint31.tistory.com

2023.04.07 - [Programming/DIP] - [OpenCV] imshow 창설정 및 종료 처리 (x버튼 처리)

 

[OpenCV] imshow 창설정 및 종료 처리 (x버튼 처리)

imshow 창설정 및 종료 처리 (x버튼 처리)창 설정 관련 arguments 및 options cv2.namedWindow를 통해 미리 창에 대한 title을 지정하여 놓을 수 있음.cv2.namedWindow('image', cv2.WINDOW_NORMAL)# Using resizeWindow() : Below cod

dsaint31.tistory.com

https://dsaint31.me/mkdocs_site/DIP/cv2/ch00/dip_0_00/

 

BME228

1. OpenCV를 통한 Image 다루기 (읽고 쓰기) 기본적으로 cv2를 이용하여 이미지를 읽어들이고, 저장하는 방법을 다룬다. 구체적인 함수는 다음과 같다. cv2.imread cv2.imshow cv2.imwrite 추가적으로 다루는 함

dsaint31.me

2022.10.21 - [Programming] - openCV : cv2.waitKey bug

 

openCV : cv2.waitKey bug

아래 글은 WSL2에서 WSLg의 버전이 낮을 경우 발생함. WSL에서의 2022.10 당시 위의 문제를 해결한 상태임. 다음 글 참조. https://bme808.blogspot.com/2022/10/cv2waitkey-wsl.html cv2.waitkey 가 wsl에서 잘 안동작하던

dsaint31.tistory.com


 

728x90

'Programming > DIP' 카테고리의 다른 글

[CV] cv2.imread()  (4) 2024.09.16
[DIP] plt.imshow: matplotlib.pyplot  (1) 2024.09.16
[OpenCV] VideoCapture 사용법.  (0) 2024.09.11
[OpenCV] API Backend for VideoCapture  (0) 2024.09.11
[DIP] Hu Moment  (2) 2024.09.10
'Programming/DIP' 카테고리의 다른 글
  • [CV] cv2.imread()
  • [DIP] plt.imshow: matplotlib.pyplot
  • [OpenCV] VideoCapture 사용법.
  • [OpenCV] API Backend for VideoCapture
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Private Life (15)
      • Programming (206)
        • DIP (116)
        • ML (35)
      • Computer (120)
        • CE (54)
        • ETC (33)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (9)
      • ... (368)
        • Signals and Systems (115)
        • Math (176)
        • Linear Algebra (33)
        • Physics (43)
        • 인성세미나 (1)
      • 정리필요. (61)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (7)
        • PET Study 2009 (1)
        • 방사선 장해방호 (5)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    signal_and_system
    Vector
    Term
    인허가제도
    opencv
    random
    linear algebra
    function
    SIGNAL
    ML
    Optimization
    Programming
    Probability
    fourier transform
    numpy
    signals_and_systems
    Python
    SS
    math
    cv2
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[DIP] cv2.imshow 사용예
상단으로

티스토리툴바