-
opencv - 이미지 다루기Python study/opencv 2023. 11. 29. 01:22
목표
- 이미지 파일을 읽고, 보고, 저장하는 방법
- 관련함수 cv2.imread(), cv2.imshow(), cv2.imwrite()
1.이미지 읽기
이미지 읽기 예제 cv2.imread() 함수를 이용하여 이미지를 읽을 수 있다.
cv2.imread() 함수 설명
- Parameter :
- FileName(str) - 이미지 파일의 경로 (상대/절대)
- flag(int) - 이미지 파일을 읽을 때의 option(flag)
- Returns : image 객체 정렬
- Return type : numpy.ndarray
이미지 읽기의 flag (cv2.imread() 함수의 flag) 는 13가지가 있다.
- cv2.IMREAD_UNCHANGED : 원본 사용
- cv2.IMREAD_GRAYSCALE : 1 채널, 그레이스케일 적용
- cv2.IMREAD_COLOR : 3 채널, BGR 이미지 사용
- cv2.IMREAD_ANYDEPTH : 이미지에 따라 정밀도를 16/32비트 또는 8비트로 사용
- cv2.IMREAD_ANYCOLOR : 가능한 3 채널, 색상 이미지로 사용
- cv2.IMREAD_REDUCED_GRAYSCALE_2 : 1 채널, 1/2 크기, 그레이스케일 적용
- cv2.IMREAD_REDUCED_GRAYSCALE_4 : 1 채널, 1/4 크기, 그레이스케일 적용
- cv2.IMREAD_REDUCED_GRAYSCALE_8 : 1 채널, 1/8 크기, 그레이스케일 적용
- cv2.IMREAD_REDUCED_COLOR_2 : 3 채널, 1/2 크기, BGR 이미지 사용
- cv2.IMREAD_REDUCED_COLOR_4 : 3 채널, 1/4 크기, BGR 이미지 사용
- cv2.IMREAD_REDUCED_COLOR_8 : 3 채널, 1/8 크기, BGR 이미지 사용
- cv2.IMREAD_LOAD_GDAL : 이미지를 GDAL드라이버를 활용하여 읽는다.(GDAL : 지도관련 이미지 처리)
- cv2.IMREAD_IGNORE_ORIENTATION : EXIF flag 에 따라 이미지 회전하지 않음
2. 이미지 보기
cv2.imshow() 함수를 이용하여 이미지를 사이즈에 맞게 보여줄 수 있다.
이미지 보기 예제코드 cv2.imshow()함수설명
-Parameters
- title(str) - 윈도우 창의 return 값
- image(numpy.ndarray) - cv2.imread() 의 return 값
cv2.waitkey()는 keyboard 입력을 대기하는 함수로 0 또는 아무것도 기입하지 않으면 무한대기상태.
cv2.destroyAllWindows()는 화면에 나타난 윈도을 종료한다.
일반적으로 위 3개는 같이 사용된다.
imread and show sample code result sample code 참조 : https://github.com/CBike/opencv/blob/master/imread.py
GitHub - CBike/opencv
Contribute to CBike/opencv development by creating an account on GitHub.
github.com
3. 이미지 저장하기
cv2.imwrite() 함수를 이용하여 변환된 이미지나 동영상의 특정 프레임을 저장한다.
cv2.imwrite(fileName, image) 함수 설명
- Parameters :
- fileName(str) - 저장될 파일명
- image - 저장할 이미지
Sample Code : https://github.com/CBike/opencv/blob/master/imwrite.py
GitHub - CBike/opencv
Contribute to CBike/opencv development by creating an account on GitHub.
github.com
이미지를 읽어서 esc 키를 누르면 종료, 's' key를 누르면 grayscale 이미지가 저장이 되는 sample
sample code result Matplotlib 사용하기
Matplotlib 는 다양한 plot 기능을 가진 python plot Library 이다.
이미지를 zoom 하거나 하나의 화면에 여러개의 이미지를 보고자 할 때 유용합니다.
Sample Code : https://github.com/CBike/opencv/blob/master/BGRtoRGB.py
GitHub - CBike/opencv
Contribute to CBike/opencv development by creating an account on GitHub.
github.com
samplecode result 단 matplotlib 는 RGB로 이미지를 보여주기 때문에 사용시 배열순서를 바꿔 주어야 한다.
Sample Code :
cv2.cvtColor('',cv2.COLOR_BGR2RGB) result 'Python study > opencv' 카테고리의 다른 글
회전(Rotate) (0) 2023.11.30 대칭(Flip, Symmetry) (0) 2023.11.30 비디오 출력 (0) 2023.11.29 Opencv- 영상다루기 (0) 2022.03.24 opencv_도형 그리기 (0) 2022.03.15