2016-09-23 5 views
0

저는 python 2.7 및 opencv를 사용하고 있습니다.Python/OpenCV : cv2.resize() 사용 오류가 발생했습니다.

내가 사용하려고 해요 :

cv2.resize(src, dst, Size(), 0.5, 0.5, interpolation=cv2.INTER_LINEAR); 

here에서 가져옵니다. 그러나이 코드를 실행할 때 나는 NameError: global name 'Size' is not defined.

나를 도와 줄 수 있습니까?

+0

'Size'에 대상 크기 인수를 제공해야합니다 :'cv2.resize (src, dst, Size (100,100), 0.5, 0.5, interpolation = cv2.INTER_LINEAR); '예를 들어 – EdChum

+0

@EdChum ========================================================== fx와 fy를 지정하고 함수가 목적지 이미지의 크기를 계산하도록 놔두십시오. – zinon

+0

예, 저는 이것을 파이썬 서명을 사용해야한다는 것을 깨달았습니다 :'cv2.resize (src, dsize [, dst [, fx [ , fy [보간법]]])) → dst' 아래의 Zdar의 대답을보십시오 – EdChum

답변

4

resize 방법의 C++ api를보고 계실 것입니다.

파이썬 API는 다음과 같은 :

dst = cv2.resize(src, dsize) 

src - Original image 
dsize - a tuple defining the final size of the image. 

당신은 당신이 같은 API의 명명 된 매개 변수를 사용할 수 있습니다 추가적인 매개 변수를 전달하려면 :

dst = cv2.resize(src, dsize, fx = 0.5, fy=0.5, interpolation = cv2.INTER_LINEAR) 

dsize는 필수 매개 변수이기 때문에 여전히 원하는 경우 resize m 계산하면 dsize을 입력하면 None으로 매개 변수를 전달할 수 있습니다.

dst = cv2.resize(src, None, fx = 0.5, fy=0.5) 
+0

고마워요! 그게 다야! 이 문제는'Size()'에서'None'을 사용하지 않았기 때문에 발생했습니다. – zinon

0

이전의 대답은 OK,하지만 내가 스토리지를 재사용하고 싶어 - 저장 resized (모두 uint8 3 차원 NumPy와 배열) 기존에 맞게 image 크기를 조정, 나는

ret = cv2.resize(image, dsize=resized.shape[:2][::-1], dst=resized) 
를 사용하는 데 필요한

dsize 인수는 거꾸로되어 있습니다 (행, 열)가 아니고 (너비, 높이)이므로 [::-1]입니다.

나는 (ret == resized).all()을 실제로 확인하기 위해 ret을 반환합니다.

관련 문제