import numpy as np
import cv2
def resize(image, percentage):
img = image
fy=percentage
fx=percentage
img2 = cv2.resize(img, (0,0), fx, fy)
return cv2.img2
img = cv2.imread('test.png')
img2 = resize(img, 0.45)
cv2.imshow('image',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
Traceback (most recent call last):
File "C:\Users\Jay\Desktop\Portable Python\opencvprogram_ver1.py", line 14, in <module>
img2 = resize(img, 0.45)
File "C:\Users\Jay\Desktop\Portable Python\opencvprogram_ver1.py", line 10, in resize
img2 = cv2.resize(img, (0,0), fx, fy)
error: C:\builds\master_PackSlaveAddon-win32-vc12-static\opencv\modules\imgproc\src\imgwarp.cpp:3209: error: (-215) dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0) in function cv::resize
亲爱的Python委员会成员,
我一直在学习Python和OpenCV,我遇到了一个问题。
我试图看看是否可以在我自己的函数中包含OpenCV函数,但似乎我做错了。回溯在cv :: resize中说了一些关于dsize.area的内容,但是这个错误信息对我来说意义不大,因为我不知道它在小图片中是如何工作的。
有人可以引导我朝着正确的方向前进,这样程序就像我期望的那样工作吗?
非常感谢。
答案 0 :(得分:2)
你看起来几乎是正确的。只需将函数的最后两行更改为:
img2 = cv2.resize(img, (0,0), fx=fx, fy=fy) # enter fx and fy as keyword arguments
return img2 # cv2.img2 was just a typo
由于fx
和fy
不是函数的第3和第4个参数,因此必须将它们指定为关键字参数。