0

在 opencv 2.4.6 中。我正在尝试使用下面给出的简单代码加载 mat 图像文件。但是当我打印图像大小时,图像没有加载,它显示为“0”。谁能告诉我,出了什么问题?

int main(int argc, char argv[])
{
    Mat a=imread("C:/image3.jpg");
    cv::Size frame11_size = a.size();
    printf("%d",frame11_size.height);
    return 0;
}

更新:我解决了这个问题。问题是,我只在“调试模式”中包含所有库、包含和附加依赖项。我没有在“发布模式”中更改任何内容。当我在“发布模式”中更改属性时,它也起作用了。感谢大家的友好回复,我给你的答案“+1”。

4

2 回答 2

1

我认为您的图像路径上应该有单斜杠,并始终检查图像是否成功加载。

 Mat a=imread("C:/image3.jpg");

 if(! a.data )  // Check for invalid input
    {
       cout <<  "Could not open or find the image" << std::endl ;
       return -1;
    }
于 2013-11-11T05:24:06.697 回答
1

OpenCV 无法自行打开 jpg 文件。这取决于第三方这样做。也许您缺少某些 dll,或者您的 OpenCV 安装没有正确的路径。要测试此假设,请将您的图像存储为其他格式。例如 pgm 或 ppm。这些格式不执行任何编码,只是将图像缓冲区按原样存储在文件中。因此 OpenCV 不需要任何外部库来打开 ppm 格式的图像。

于 2013-11-11T09:26:45.023 回答