cv2.imread(file, flags=Nonename) -> retval
- filename : 불러온 영상 파일 경로
- flags : 영상 파일 불러오기 옵션 플래그
- retval : 불러온 영상
flags | description |
cv2.IMREAD_COLOR | BGR 컬러 영상으로 읽기(기본값) shape = (rows, cols, 3) |
cv2.IMREAD_GRAYSCALE | 그레이스케일 영상으로 읽기 shape = (rows, cols) |
cv2.IMREAD_UNCHANGED | 영상 파일 속성 그대로 읽기 (e.g.) 투명한 png 파일 : |
예제 1) flags 를 cv2.IMREAD_GRAYSCALE로 변경하면 그레이 스케일 영상으로 읽어 준다.
import sys
import cv2
print('Hello, OpenCV', cv2.__version__)
img = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
#imread 는 imageread 의 약어로 이미지를 여는 함수
if img is None:
print("이미지 로드가 실패 했습니다.")
sys.exit()
cv2.namedWindow('image')
cv2.imshow('image', img)
cv2.waitKey() #키입력이 들어올 때 까지 멈춘다
cv2.destroyAllWindows()
cv2.imwrite(filename, img, params=None) -> retval
- filename : 저장할 영상 파일 이름(문자열)
- img : 저장할 영상 데이터 (numpy.ndarry)
- params : 파일 저장 옵션 지정 (속성 & 갑의 정수 쌍)
e.g) cv2.IMWRITE_JPEG_QUALITY, 90] : JPG 파일 압축률을 90%로 지정
- retval 정상적으로 저장하면 True, 실패하면 False
예제 2) 그레이 스케일 영상으로 입력 받고 png 로 저장하는 코드
import sys
import cv2
print('Hello, OpenCV', cv2.__version__)
img = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
#imread 는 imageread 의 약어로 이미지를 여는 함수
if img is None:
print("이미지 로드가 실패 했습니다.")
sys.exit()
cv2.namedWindow('image')
cv2.imshow('image', img)
cv2.imwrite('cat_gray.png', img) # png 파일로 저장
cv2.waitKey() #키입력이 들어올 때 까지 멈춘다
cv2.destroyAllWindows()
코드를 실행하고 파일탐색기로 확인해 보면 cat_gray.png 파일이 생성 된 것을 확인 할 수 있다.
cv2.namedWindow(winname, flags=None) -> None
- winname : 창 고유 이름(문자열)
- flags : 창 속성 지정 플래그
flags | description |
cv2.WINDOW_NORMAL | 영상 크기를 창 크기에 맞게 지정 |
cv2.WINDOW_AUTOSIZE | 창 크기를 영상 크기에 맞게 변경 (기본값) |
AUTOSIZE 의 경우 창사이즈를 변경 할 수 없다
cv2.destoryWindow(winname) -> None
cv2.destoryAllWindows() -> None
- winname : 닫고자 하는 창이름
- 참고 사항
cv2.destoryWindow() 함순느 지정한 창 하나만 닫고, cv2.destoryAllWindows() 함수는 열려있는 모든 창을 닫음, 일반적인 경우 프로그램 종료 시 운영 체제에 의해 열려 있는 모든 창이 자동으로 닫힘
cv2.moveWindow(winname, x, y) -> None
- winname: 창 이름
- x, y : 이동할 위치 좌표
cv2.resizeWindow(winname, width, height) -> None
- winname : 창이름
- width : 변경할 창의 가로 크기
- height : 변경할 창의 세로 크기
- 참고 사항
창 생성 시 cv2.WINDOW_NORMAL 속성으로 생성되어야 동작
영상 출력 부분의 크기만 고려함 (제목 표시줄, 창 경계는 고려되지 않음)
cv2.imgshow(winname, mat) -> None
- winname : 영상을 출력할 대상 창이름
- mat : 출력할 영상 데이터 (numpy.ndarry)
- 참고사항
uint16, int32 자료형 행렬의 경우, 행렬 원소 값을 255로 나눠서 출력
float32, float64 자료형 행렬의 경우, 행렬 원소 값에 255를 곱해서 출력
만약 winname에 해당하는 창이 없으면 창을 새로 만들어서 영상을 출력함
Windows 운영체제에서는 Ctrl + C (복사), Ctrl + S(저장) 지원
실제로는 cv2.waitKey() 함수를 호출해야 화면에 영상이 나타남
cv2.waitKey(delay=None) -> retval
- delay : 밀리초 단위 대기시간. delay <= 0 이면 무한히 기다림. 기본값은 0.
- retval : 눌린 키 값(ASCII code). 키가 눌리지 않으면 -1.
- 참고 사항
cv2.waitKey() 함수는 OpenCV 창이 하나라도 있을 때 동작함
특정 키 입력을 확인하려면 ord() 함수를 이용
while True:
if(cv2.waitKey() == ord('q'):
break;
주요 특수키 코드: 27(ESC), 13(ENTER), 9(TAB)
영상의 속성과 픽셀 값 참조 (0) | 2021.05.12 |
---|---|
Matplotlib 사용하여 영상 출력하기 (0) | 2021.05.12 |
BMP 파일 출력 하기 (0) | 2021.05.12 |
Hello, OpenCV 출력하기 (0) | 2021.05.12 |
OpenCV-Python 환경 설정 및 사용하기 (0) | 2021.05.12 |
댓글 영역