python - 使用 SIFT OpenCV 处理大图像时出错

标签 python opencv image-processing feature-detection sift

我想用OpenCV Python对遥感影像做SIFT特征检测。这些图像是高分辨率的,可以有数千像素宽(7000 x 6000 或更大)。但是,我遇到内存不足的问题。作为引用点,我在 Matlab 中运行了相同的 7000 x 6000 图像(使用 VLFEAT)而没有出现内存错误,尽管更大的图像可能会有问题。有人对使用 OpenCV SIFT 处理此类数据集有建议吗?

OpenCV 错误:cv::OutOfMemoryError 中的内存不足(无法分配 672000000 字节),文件 C:\projects\opencv-python\opencv\modules\core\src\alloc.cpp,第 55 行 OpenCV 错误:断言失败 (u != 0) in cv::Mat::create, file

(我在具有 32 GB RAM 的 Windows 64 位系统上的 Spyder IDE 中使用 Python 2.7 和 OpenCV 3.4。)

最佳答案

我会将图像分割成更小的窗口。只要您知道窗口重叠(我假设您知道横向偏移),任何窗口中的匹配都是有效的。

您甚至可以将其用作检查,图像任何部分的特征点之间的转换必须相同才能使转换有效

关于python - 使用 SIFT OpenCV 处理大图像时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48331004/

相关文章:

python - 如何使用tcpdump和c++重新创建文件?

python - 如何在背景 OpenCV 和 Python 上调整和转换蒙版图像的大小

python生成带有偏移量和条件的子列表

python - 属性错误: 'int' object has no attribute 'directions'

ios - 构建框架 IOS OpenCV 3.1.0.2 在 MAC (OS X El Capitan) 上失败

python - 在 Python OpenCV2 中打开多 channel 图像

python - YUV420p转其他格式,色偏问题

python - 如何在 python 中使用 np.pad 填充图像?

c++ - 在 OpenCv 中扩展轮廓

python - 使用 Tkinter 显示 numpy 数组中的图像