OpenCV的imread()函数读取图片返回为空的问题

程序代码如下:

		// 导入图像
		std::stringstream ss;
		ss <<  "/home/wang/桌面/LearningVO-master/build/dataset/00/image_0/"
			<< std::setw(6) << std::setfill('0') << img_id << ".png";

		cv::Mat img(cv::imread(ss.str().c_str(), 0));
		assert(!img.empty());

图片所在路径如下:

OpenCV的imread()函数读取图片返回为空的问题_第1张图片

但是程序会 assert failed。

本人的解决方案:

OpenCV的绝对路径貌似有问题,将绝对路径改为相对路径:

		// 导入图像
		std::stringstream ss;
		ss <<  "./dataset/00/image_0/"
			<< std::setw(6) << std::setfill('0') << img_id << ".png";

		cv::Mat img(cv::imread(ss.str().c_str(), 0));
		assert(!img.empty());

注意此相对路径相对的是在终端中执行命令时的路径;另外Home目录要写为“/Home/xxx/”,而不是“~/xxx/”,否则也会出现错误。

修改后,程序正常运行。

 

你可能感兴趣的:(OpenCV的imread()函数读取图片返回为空的问题)