https://dsaint31.me/mkdocs_site/DIP/cv2/ch00/dip_0_00/#1-2-display-or-check-image-by-opencv
BME228
1. OpenCV를 통한 Image 다루기 (읽고 쓰기) 기본적으로 cv2를 이용하여 이미지를 읽어들이고, 저장하는 방법을 다룬다. 구체적인 함수는 다음과 같다. cv2.imread cv2.imshow cv2.imwrite 추가적으로 다루는 함
dsaint31.me
예제 코드
from skimage import data
import cv2
# skimage 라이브러리에서 고양이 테스트 이미지를 불러옴
cat = data.chelsea() # Chelsea 테스트 이미지(고양이)를 로드
cat = cat[...,::-1]
print(f'{cat.shape=}') # 이미지의 크기(shape)를 출력
# ---------------------
# 아래는 트랙바 콜백 함수의 예시 (주석 처리됨)
# def on_trackbar(val):
# pass # 트랙바 콜백 함수의 자리 표시자
# 이름이 지정된 창을 생성 (선택 사항) 및 창 크기 조정 가능
cv2.namedWindow('test_cat', cv2.WINDOW_NORMAL) # WINDOW_NORMAL 플래그는 창 크기 조정을 허용
cv2.imshow('test_cat', cat) # 'test_cat' 창에 고양이 이미지를 표시
# 선택적으로 트랙바 생성 (주석 처리됨)
# 이 트랙바는 이미지와의 상호작용 (예: 밝기 조정)을 가능하게 함
# cv2.createTrackbar("trackbar", "test_cat", 0, 100, on_trackbar)
# 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()
주요 요소 설명:
skimage.data.chelsea()
:skimage
라이브러리에서 제공하는 고양이 이미지(테스트 이미지)를 로드cv2.namedWindow
: 지정된 이름의 창을 생성하고,cv2.WINDOW_NORMAL
플래그를 통해 창 크기 조정이 가능하도록 설정.cv2.imshow
: 지정된 창에 이미지를 표시.cv2.waitKey(10)
: 10밀리초마다 키 입력을 대기하며, ESC 키나 창 닫기 이벤트가 발생하면 루프를 종료.cv2.getWindowProperty
: 창이 여전히 열려 있는지 확인하고, 닫힌 경우 루프를 종료.cv2.destroyAllWindows()
: 루프가 끝난 후 모든 OpenCV 창을 닫음.
같이 보면 좋은 자료들
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
'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 |