利用opencv和python实现简单的图像拼接问题

2024-09-27 19:28:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试使用OpenCV来构建一个简单的图像缝合器,能够将多个图像缝合在一起。我以写(复制)这段简单的代码作为出发点。在

现在,如果我选择缝合foo,doo和roo,它缝合没问题。但是当我引入eoo时,出现了一个问题,我得到了这个错误。在

问题是,我似乎找不到任何迹象表明这个错误意味着什么?我认为这可能是一个内存问题,但即使我缝合了3个包含eoo的图像,我还是会遇到问题。在

我使用的图像是4.jpg5.jpg6.jpg7.jpg

误差如下

[ INFO:0] Initialize OpenCL runtime...
OpenCV Error: Insufficient memory (Failed to allocate 1612986244 bytes) in OutOfMemoryError, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/alloc.cpp, line 55
OpenCV Error: Assertion failed (u != 0) in create, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/matrix.cpp, line 436
Traceback (most recent call last):
  File "new.py", line 10, in <module>
    result = stitcher.stitch((foo,doo,eoo))
cv2.error: /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/matrix.cpp:436: error: (-215) u != 0 in function create
^{pr2}$

Tags: incore图像srcmodulesfoolineros
1条回答
网友
1楼 · 发布于 2024-09-27 19:28:40

一个可能有帮助的变化是使用OpenCV的GPU支持来提高图像拼接管道的性能。我无法复制您的错误信息,因为使用任何图像组合创建了一个成功的缝合图像。在

enter image description here

import cv2

stitcher = cv2.createStitcher(True)

foo = cv2.imread("4.jpg")
doo = cv2.imread("5.jpg")
eoo = cv2.imread("6.jpg")
roo = cv2.imread("7.jpg")

result = stitcher.stitch((foo,doo,eoo,roo))

cv2.imshow("camera",result[1])
cv2.waitKey(0)

相关问题 更多 >

    热门问题