img

Younghwan Cha·2022년 9월 3일
0

OpenCV

목록 보기
2/10

img.copy

이미지는 여러 배열로 이루어져 있으므로 그냥 가져가서 사용할 경우
본래의 이미지가 변경될 위험이 있다. 그렇기 때문에 img.copy() 를
통해서 복사해 가는 것이 안전하다.

img.shape

이미지 크기에 관한 기본 정보를 얻고 싶다면

img.shape

를 통해서 (height, width, channel) 을 전달 받을 수 있다.
여기서 channel 이란, 하나의 색을 표현하기 위해 존재하는 색의 가짓수로, 보통의 경우 RGB 와 같이 3개의 채널을 갖고 있지만,
흑백 사진의 경우에는 흰색과 검정색으로 이루어져있기 때문에 1개의 채널을 갖고 있다.

cv2.resize()

resize 를 할 경우, 단순히 크기를 늘리고 줄이는 것이 아니라
크기를 늘릴 경우엔 픽셀에 대한보간법, 줄일 경우엔 픽셀에 대한 병합법이 사용된다.
사이즈를 변경하는 방법에는 두가지가 있는데,
하나는 절대 크기로 이미지를 변경하는 것이고(dsize)
다른 하나는 상대 크기로 이미지를 변경하는 것이다(fx, fy)

dst = cv2.resize(src, dstSize, fx, fy, interpolation)는 입력 이미지(src), 절대 크기(dstSize), 상대 크기(fx, fy), 보간법(interpolation)으로 출력 이미지(dst)을 생성한다.

interpolation(보간법)은, 사이즈가 변경됐을 때 늘어나거나 줄어든 공간에 대한 추론을 어떻게 할 것인지에 대한 설정이라고 보면된다.
이미지 사이즈를 늘리거나 줄이게 되면 새로운 영역에 대해서 새로운 값을 배정하거나 압축해서 새로운 값을 배정해야 한다. 이에 대한 설정이 보간법인 것이다.

interpolation 속성

cv2.INTER_NEAREST 이웃 보간법
cv2.INTER_LINEAR 쌍 선형 보간법
cv2.INTER_LINEAR_EXACT 비트 쌍 선형 보간법
cv2.INTER_CUBIC 바이큐빅 보간법
cv2.INTER_AREA 영역 보간법
cv2.INTER_LANCZOS4 Lanczos 보간법

[ref]
https://076923.github.io/posts/Python-opencv-8/
https://opencv-python.readthedocs.io/en/latest/doc/15.imageContours/imageContours.html
https://daewoonginfo.blogspot.com/2019/05/opencv-python-resize.html

profile
개발 기록

0개의 댓글