dlib“筛选器窗口必须足够小以适合填充的图像”

时间:2018-07-17 23:20:27

标签: c++ dlib

尝试使用dlib处理图像时出现以下错误。我正在使用facial-recognition npm软件包,但这只是dlib的包装。

**************************** FATAL ERROR DETECTED ****************************

Error detected at line 1971. 
Error detected in file /Users/botvinick/Desktop/GitHub/api.benbotvinick.com/node_modules/dlib-build/dlib/dlib/dlib/dnn/cpu_dlib.cpp. 
Error detected in function void dlib::cpu::tensor_conv::operator()(const bool, dlib::tensor &, const dlib::tensor &, const dlib::tensor &).

Failing expression was filters.nr() <= data.nr() + 2*last_padding_y. 
Filter windows must be small enough to fit into the padded image.

******************************************************************************

libc++abi.dylib: terminate_handler unexpectedly returned

我尝试了不同类型和尺寸的图像,但无济于事。

编辑:可能重要的是要提到我是从URL获取图像并将其转换为CvImage。也许在转换过程中的某个地方,图像被截断了,但问题仍然存在,如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

将图像尺寸转换为正方形,例如100x200-> 100x100或200x200。您需要根据实际图像做出判断,是放大还是缩小还是沿一个方向(x或y)截断。由于缩放可能会使适当的填充变形以使其成为正方形图像,因此可能会有所帮助。