Opencv libpng错误:IDAT:距离太远无效
我正在使用INRIA person数据集,我迭代图像,一切都很好,在我有了这个函数之后Opencv libpng错误:IDAT:距离太远无效,opencv,libpng,Opencv,Libpng,我正在使用INRIA person数据集,我迭代图像,一切都很好,在我有了这个函数之后 vector<Mat> HOG_extract(Mat input_image, bool patch_size, int width, int height) { Mat gray_image; cvtColor(input_image, gray_image, CV_BGR2GRAY); HOGDescriptor hog; hog.winSize =
vector<Mat> HOG_extract(Mat input_image, bool patch_size, int width, int height)
{
Mat gray_image;
cvtColor(input_image, gray_image, CV_BGR2GRAY);
HOGDescriptor hog;
hog.winSize = Size(width, height);
hog.blockSize = Size(block_size, block_size);
hog.blockStride = Size(block_stride, block_stride);
hog.cellSize = Size(cell_size, cell_size);
hog.nbins = bin_size;
vector<float> hog_value;
vector<Point> locations;
hog.compute(gray_image, hog_value, Size(0, 0), Size(0, 0), locations);
}
vector HOG\u extract(Mat输入图像、布尔块大小、整数宽度、整数高度)
{
Mat灰度图像;
CVT颜色(输入图像、灰度图像、CV图像);
猪;
hog.winSize=尺寸(宽度、高度);
hog.blockSize=大小(块大小,块大小);
hog.blockStride=尺寸(块步,块步);
hog.cellSize=大小(单元格大小,单元格大小);
hog.nbins=箱尺寸;
向量hog_值;
矢量位置;
计算(灰度图像、hog值、大小(0,0)、大小(0,0)、位置);
}
当他到达hog.compute时,我收到一个异常和libpng错误:IDAT:距离太远无效
比如我如何解决这个问题?看起来在使用imread和灰色转换时发生了一些没有意义的事情。如果错误确实是由
libpng
生成的,那么它将在imread()
期间发生,而不是在加载并转换为灰度后发生。尝试通过pngcheck
程序运行不满意的图像。此pngcheck有一些选项,或者我可以如何在批处理中迭代%%i in(*.png)do pngcheck.exe是的,我认为您需要使用循环。但此pngcheck.exe运行时没有参数?因为对我来说它不能像那样工作这是手册