我是使用OpenCV和Visual Studio进行图像处理的初学者。我有一段代码,我不明白:
Mat image;
image = imread(filename, IMREAD_COLOR); // Read the file
if (! image.data ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
在第三行中,!
和.data
是什么意思?他们如何检查无效输入?
答案 0 :(得分:6)
cv::Mat::data
是指向cv::Mat
对象内部保存的数据缓冲区的指针。如果它的计算结果为false,则表示没有加载数据,并且无法取消引用指针。
相当于将image.data
与{+ 1}},NULL
或0
在C ++ 11中进行比较。