728x90
반응형
SMALL
이미지 읽기
cv2.imread (fileName, flag) 함수를 이용하여 이미지 파일을 읽는다. 이미지 파일의 경로는 절대 / 상대 경로가 설정할 수 있다.
import cv2
img = cv2.imread('xx.jpg', cv2.IMREAD_COLOR) # read xx.jpg
◦ parameters: fileName (str) – 이미지 파일의 경로, flag (int) – 이미지 파일을 읽을 때의 option ◦ returns: image 객체 행렬 ◦ return type : numpy.ndarray |
◦ cv2.IMREAD_COLOR : 이미지 파일을 color로 읽음. 투명한 부분은 무시되며, default 값 ◦ cv2.IMREAD_GRAYSCALE : 이미지를 grayscale로 읽음. 실제 이미지 처리시 중간단계로 많이 사용 ◦ cv2.IMREAD_UNCHANGED : 이미지파일을 alpha channel까지 포함하여 읽음 (3개의 flag대신에 1, 0, -1을 사용 가능) |
◦ grayscale - 계산량 감소 : RGB는 3차원의 색공간을 가지고 있다. 즉, R : 0~255, G : 0~255, B : 0~255 를 가지고 있으며 이를 계산하면 255x255x255 = 16581374의 계산을 해야하지만 grayscale은 1차원인 0~255만 따지게 되므로 연산량이 대폭 감소한다. - 이진화 하기에 적합 |
img.shape
(512, 512, 3)
OpenCV도 이미지 데이터를 NumPy 배열로 저장하지만 색 채널의 순서가 R-G-B 순서가 아니라, B-G-R 순서로 뒤바뀌어 있다는 점에 주의한다.
# 각 채널을 분리
b, g, r = cv2.split(img)
# b, r을 서로 바꿔서 Merge
img = cv2.merge([r, g, b])
cvtColor 명령을 사용하면 더 간단하게 색공간을 변환할 수도 있다.
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
이미지 파일을 만들 때는 imwrite 명령을 사용한다.
cv2.imwrite("./gray.png", img_gray)
True
이미지 보기
cv2.imshow(title, image) 함수는 이미지를 사이즈에 맞게 보여준다.
title (str) – 윈도우 창의 Title image (numpy.ndarray) – cv2.imread() 의 return 값 |
import cv2
fname = 'xx.jpg'
original = cv2.imread(fname, cv2.IMREAD_COLOR)
gray = cv2.imread(fname, cv2.IMREAD_GRAYSCALE)
unchange = cv2.imread(fname, cv2.IMREAD_UNCHANGED)
cv2.imshow('Original', original)
cv2.imshow('Gray', gray)
cv2.imshow('Unchange', unchange)
cv2.waitKey(0)
cv2.destroyAllWindows()
◦ cv2.waitKey() : keyboard 입력을 대기하는 함수로 0이면 key입력까지 무한대기, 특정 시간동안 대기하려면 milisecond 값 입력 ◦ cv2.destroyAllWindows() : 화면에 나타난 윈도우를 종료 |
이미지 저장하기
cv2.imwrite(fileName, image) 함수를 이용하여 변환된 이미지나 동영상의 특정 프레임을 저장한다.
◦ fileName (str) – 저장될 파일명 ◦ image – 저장할 이미지 |
import cv2
img = cv2.imread('xx.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27: # esc key
cv2.destroyAllWindow()
elif k = ord('s'): # 's' key
cv2.imwrite('lenagray.png',img)
cv2.destroyAllWindow()
이미지를 읽어서 esc키를 누르면 종료, ‘s’ key를 누르면 grayscale 이미지가 저장이 된다.
728x90
반응형
LIST
'AI-driven Methodology > CV (Computer Vision)' 카테고리의 다른 글
[Computer Vision] 색 공간 (Color Space) (0) | 2022.06.12 |
---|---|
[Computer Vision] 이미지 처리 (0) | 2021.12.30 |
[Computer Vision] 블록 매칭 및 3D 필터링 (Block-Matching and 3D filtering, BM3D) (0) | 2021.12.15 |
[Computer Vision] Morphological Operations (0) | 2021.12.13 |
[Computer Vision] Edge Detection (0) | 2021.12.11 |