GPr*_*hap 5 python opencv opencv-python
我想在图像上应用cv2.pyrDown()时明确指定图像的输出大小。
def gaussian_pyramid(image, scale=1.5, minSize=(30, 30)):
yield image
while True:
w = int(image.shape[1] / scale)
h = int(image.shape[0] / scale)
image = cv2.pyrDown(image, dstsize=(w, h))
if image.shape[0] < minSize[1] or image.shape[1] < minSize[0]:
break
yield image
Run Code Online (Sandbox Code Playgroud)
但它抛出了一个类似于此的错误。
OpenCV Error: Assertion failed (ssize.width > 0 && ssize.height > 0 && std::abs(dsize.width*2 - ssize.width) <= 2 && std::abs(dsize.height*2 - ssize.height) <= 2) in pyrDown_, file /io/opencv/modules/imgproc/src/pyramids.cpp, line 873
Run Code Online (Sandbox Code Playgroud)
任何想法如何将图像的输出大小指定为方法参数。
来自 OpenCV 2.4 教程:
pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 )tmp:当前图像,用src原始图像初始化。
dst:目标图像(将显示在屏幕上,据说是输入图像的一半)
Size( tmp.cols/2, tmp.rows/2):目标大小。由于我们正在进行下采样,pyrDown 预计输入图像大小的一半(在本例中为 tmp)。
请注意,重要的是输入图像可以除以两倍(在两个维度上)。否则,将显示错误。
这是取自 C++ 教程的,但它应该同样适用于 Python。
| 归档时间: |
|
| 查看次数: |
4764 次 |
| 最近记录: |