Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv libpng错误:IDAT:距离太远无效_Opencv_Libpng - Fatal编程技术网

Opencv libpng错误:IDAT:距离太远无效

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 =

我正在使用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 = 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运行时没有参数?因为对我来说它不能像那样工作这是手册