이미지 크기를 가져오려면 Python OpenCV2(cv2) 래퍼를 선택하시겠습니까?
이미지 크기를 가져오는 방법cv2
Python OpenCV(numpy)의 래퍼입니다.다른 올바른 방법이 있습니까?numpy.shape()
(폭, 높이) 목록의 형식 치수로 어떻게 얻을 수 있습니까?
cv2
사용하다numpy
이미지를 조작하기 위해, 그래서 이미지의 크기를 얻는 적절하고 가장 좋은 방법은 사용하는 것입니다.numpy.shape
다음은 BGR 영상으로 작업하는 경우의 예입니다.
>>> import numpy as np
>>> import cv2
>>> img = cv2.imread('foo.jpg')
>>> height, width, channels = img.shape
>>> print height, width, channels
600 800 3
바이너리 이미지로 작업하는 경우,img
에는 2차원이 있으므로 코드를 다음으로 변경해야 합니다.height, width = img.shape
유감스럽게도 이 사이즈를 구할 수 있는 "더 나은" 방법은 없지만, 그렇게 큰 고통은 아닙니다.
물론 코드는 이진/모노 이미지와 다중 채널 이미지 모두에 대해 안전해야 하지만 이미지의 주요 치수는 항상 numpy 배열 모양에서 먼저 나옵니다.가독성을 선택하거나 입력하기 싫다면 함수로 마무리하여 원하는 이름을 지정할 수 있습니다.cv_size
:
import numpy as np
import cv2
# ...
def cv_size(img):
return tuple(img.shape[1::-1])
터미널 / ipython에 있는 경우 람다로 표현할 수도 있습니다.
>>> cv_size = lambda img: tuple(img.shape[1::-1])
>>> cv_size(img)
(640, 480)
다음을 사용하여 함수 쓰기def
대화형으로 작업하는 동안 재미가 없습니다.
편집
원래 나는 사용하는 것이[:2]
괜찮았지만, 마비된 모양은.(height, width[, depth])
그리고 우리는 필요합니다.(width, height)
예를 들면cv2.resize
기대합니다, 그래서 - 우리는 사용해야 합니다.[1::-1]
보다 기억에 덜 남는 것은[:2]
그리고 누가 역 슬라이싱을 기억합니까?
Python 3 튜플 압축 풀기
우리 모두가 파이썬 3으로 이동하고, 따라서 https://peps.python.org/pep-3132/ 을 가진 후에, 우리는 또한 얻을 수 있습니다.h
그리고.w
튜플 압축 풀기 사용:
h, w, *_ = img.shape
이번에는 단일 채널 이미지에 대해 걱정할 필요가 없습니다 :)
import cv2
import numpy as np
def main():
# init cv
cap = cv2.VideoCapture(0)
while True:
success, img = cap.read()
# WAY 1
img = cv2.flip(img, 1)
print(img.shape)
# WAY 2
print(
f"width: {cap.get(cv2.CAP_PROP_FRAME_WIDTH)}, height: {cap.get(cv2.CAP_PROP_FRAME_HEIGHT)}, fps: {cap.get(cv2.CAP_PROP_FPS)}")
cv2.imshow(winname="universal control", mat=img)
cv2.waitKey(1)
if __name__ == '__main__':
main()
언급URL : https://stackoverflow.com/questions/19098104/python-opencv2-cv2-wrapper-to-get-image-size
'programing' 카테고리의 다른 글
문자열 ISO-8601 날짜를 오라클의 타임스탬프 데이터 형식으로 변환 (0) | 2023.07.21 |
---|---|
복사본을 포함한 Numpy 배열 할당 (0) | 2023.07.21 |
파이어스토어 문서에서 중첩된 오브젝트의 필드를 업데이트하시겠습니까? (0) | 2023.07.21 |
예외에서 루프를 계속할 수 있습니까? (0) | 2023.07.16 |
메모리를 2의 거듭제곱으로 할당하는 것이 더 나을까요? (0) | 2023.07.16 |