Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- VScode 환경설정
- python 3.7.7
- openCV 실습
- Python 환경설정
- opencv-python
- OpenCV 입문
- OpenCV 예제
- OpenCV 기초
- 스프링역사
- vscode
- OpenCV 초급
- 영상 추출
- OpenCV
- imwrite
- 영상 생성
- VScode Python
- 고릴라캠핑
- 고릴라캠핑TV체험단
- python-opencv
- Python
- numpy.ndarray
- 파티라이트
- nameWindow
- imread
- 제드파티라이트
- 고릴라캠핑TV
- 파이썬 설정
- 영상 복사
- matplotlib
- cvtColor
Archives
- Today
- Total
코딩. 캠핑
OpenCV Python 입문(1) - OpenCV 기본 함수 본문
이제 "안녕 파이썬!" 도 해봤으니 현재 폴더에 고양이 이미지를 하나 넣어 넣고 이미지를 하나 띄워보자
import sys
import cv2
print("Hello OpenCV", cv2.__version__)
img = cv2.imread('cat.bmp') # img에 cat.bmp 이미지 대입
if img is None: # 예외처리) 이미지가 없으면,
print('이미지가 없습니다!') # 없다고 출력
sys.exit()
cv2.namedWindow('image') # image라는 창을 하나 생성
cv2.imshow('image', img) # image라는 창에다가 img를 보여줌
cv2.waitKey() # 바로 종료되지 않도록 하는 대기 함수
cv2.destroyAllWindows() # 모든 창 종료
컨트롤 + F5를 누르면
이쁜 고양이가 한 마리 나온다. 닫을 때는 아무 키나 눌러서 닫으면 된다.
이제 한번 따라 해 봤으니 어떤 함수가 쓰였는지 하나씩 하나씩 뜯어보자
영상 파일 불러오기
cv2.imread(filename, flags=None) -> retval
- filename : 불러올 영상 파일 이름
- flags : 옵션 플래그
cv2.IMREAD_COLOR : BGR 컬러로 읽기 (기본값)
cv2.IMREAD_GRAYSCLE : 그레이 스케일로 읽기
cv2.IMREAD_UNCHANGED : 파일 속성 그대로 읽기 (PNG 파일) - retval : 불러온 영상 데이터
많은 옵션들이 있지만 요것들만 소개하고, 쓰는 방법으로는
img = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
img = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
img = cv2.imread('cat.bmp', cv2.IMREAD_UNCHANGED)
로 각각 쓰면 된다. UNCHANGED에 관해서는 다음에 자세하게 다룰 것이다. read가 있으면 write도 있다!
영상 파일 저장하기
cv2.imwrite(filename, img, params=None) -> retval
- filename : 저장할 영상 파일 이름
- img : 저장할 영상 데이터
- params : 파일 저장 옵션 지정
ex) [cv.2IMWRITE_JPEG__QUALITY, 90] : JPG 파일 압축률을 90%로 지정 - retval : 성공적으로 저장하면 True, 실패하면 False
인데 직접 해보는 게 좋으니 위에 불러오는 옵션 중 그레이 스케일로 해서 흑백으로 저장해보겠다.
import sys
import cv2
print("Hello OpenCV", cv2.__version__)
img = cv2.imread('cat.bmp') # img에 cat.bmp 이미지 대입
if img is None: # 예외처리) 이미지가 없으면,
print('이미지가 없습니다!') # 없다고 출력
sys.exit()
cv2.imwrite('cat_gray.png', img) # cat_gray.png 라는 이름으로 img를 저장
cv2.namedWindow('image') # image라는 창을 하나 생성
cv2.imshow('image', img) # image라는 창에다가 img를 보여줌
cv2.waitKey() # 바로 종료되지 않도록 하는 대기 함수
cv2.destroyAllWindows() # 모든 창 종료
아까랑 비슷하지만, img에 그레이 스케일로 불러온 다음, 'cat_gray.png'로 저장했다. 실행해보면
이렇게 흑백으로 된 이미지가 열리고,
imwrite으로 만들어준 cat_gray.png라는 파일이 생성된 걸 확인할 수 있다.
새 창 띄우기
cv2.nameWindow(winname, flags=None) -> None
- winname : 창 고유 이름
- flags : 옵션 플래그
cv2.WINDOW_AUTOSIZE : 창 크기를 영상 크기에 맞게 변경(기본값)
cv2.WINDOW_NORMAL : 영상 크기를 창 크기에 맞게 지정
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
로 지정해서 실행하게 되면,
기존에 뜨던 창과는 다르게 창 사이즈를 내 맘대로 조절할 수 있게 된다.
창 닫기
cv2.destroyWindow(winname) -> None
cv2.destroyAllWindows() -> None
- winname : 닫고자 하는 창 이름
- 일반적인 경우에는 프로그램 종료 시에 열려 있는 모든 창이 닫힌다.
창 위치 이동
cv2.moveWindow(winname, x, y) -> None
- winname : 이동하고자 하는 창 이름
- x, y : 이동할 위치 좌표
창 크기 변경
cv2.resizeWindow(winname, width, height) -> None
- winname : 크기를 변경할 창 이름
- width, height : 변경할 창의 가로 세로 크기
- 창 생성 시 cv2.WINDOW_NORMAL 속성으로 생성되어야 동작한다.
영상 출력하기
cv2.imshow(winname, mat) -> None
- winname : 출력할 대상 창 이름
- mat : 출력할 영상 데이터
- winname에 해당하는 창이 없으면 새로 만들어서 영상을 출력한다.
windows 환경에서는 컨트롤 + S 로 저장, 컨트롤 + C, V로 클립보드에 복사했다가 붙여 넣기도 할 수 있다.
cv2.waitKey()가 없으면 화면에 영상이 나타나지 않는다.
키보드 입력 대기
cv2.waitKey(delay=None) -> retval
- delay : 밀리초 단위 대기 시간. delay ≤ 0 이면 무한 대기. 기본값 0.
- retval : 눌린 키 값(아스키 코드). 키가 눌리지 않으면 -1.
- OpenCV 창이 하나라도 있을 때 동작.
OpenCV 기본적인 함수 몇가지에 대해서 알아보았다.
OpenCV에 관해서 또 궁금한것들이 생기면 여기서 검색해서 찾아보면 될 것 같다.
'Dev(개발) > OpenCV(Python)' 카테고리의 다른 글
OpenCV Python 입문(5) - 영상 생성, 복사, 부분 추출 (0) | 2021.01.28 |
---|---|
OpenCV Python 입문(4) - 영상의 속성과 픽셀 값 참조 (2) | 2021.01.28 |
OpenCV Python 입문(3) - 이미지 슬라이드쇼 만들기 (0) | 2021.01.27 |
OpenCV Python 입문(2) - Matplotlib 라이브러리 (1) | 2021.01.26 |
OpenCV, Python, VScode 설치 및 환경설정 (6) | 2021.01.19 |
Comments