ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenCV 读取一张图片并显示出来

2021-07-05 23:03:32  阅读:142  来源: 互联网

标签:src 读取 opencv int opencv2 OpenCV include cv 图片


学习内容

利用OpenCV 读取一张本地图片并显示出来。

简要说明

这是学习OpenCV的一个必备知识,我的学习宗旨是:知道如何去用,才会去了解

代码演示

这是一个演示基础框架

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{


	return 0;
}

开始写读取代码

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{
	cv::Mat src = cv::imread("D:\\workspace\\opencv\\project\\test.png");
	if (!src.data)
	{
		std::cout << "读取图片失败!" << std::endl;
		return -1;
	}
	else 
	{
		std::cout << "读取图片成功!" << std::endl;
	}

	return 0;
}

输入
在这里插入图片描述
有时候读取图片失败,首先找是否路径错误等问题,例如写成路径是\

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{
	cv::Mat src = cv::imread("D:\workspace\opencv\project\test.png");
	if (!src.data)
	{
		std::cout << "读取图片失败!" << std::endl;
		return -1;
	}
	else 
	{
		std::cout << "读取图片成功!" << std::endl;
	}

	return 0;
}

输出
在这里插入图片描述

但是,这样子时候是正确的

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{
	cv::Mat src = cv::imread("D:/workspace/opencv/project/test.png");
	if (!src.data)
	{
		std::cout << "读取图片失败!" << std::endl;
		return -1;
	}
	else 
	{
		std::cout << "读取图片成功!" << std::endl;
	}

	return 0;
}

输出
在这里插入图片描述
还有 这种也是可能正确

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{
	cv::Mat src = cv::imread("D://workspace//opencv//project//test.png");
	if (!src.data)
	{
		std::cout << "读取图片失败!" << std::endl;
		return -1;
	}
	else 
	{
		std::cout << "读取图片成功!" << std::endl;
	}

	return 0;
}

输出
在这里插入图片描述

开始显示图片

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{
	cv::Mat src = cv::imread("D://workspace//opencv//project//test.png");
	if (!src.data)
	{
		std::cout << "读取图片失败!" << std::endl;
		return -1;
	}
	else 
	{
		std::cout << "读取图片成功!" << std::endl;
	}

	cv::namedWindow("src", cv::WINDOW_NORMAL);
	cv::imshow("src", src);

	cv::waitKey(0);
	return 0;
}

输出一张图片
在这里插入图片描述

这样子也可以显示一张图

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{
	cv::Mat src = cv::imread("D://workspace//opencv//project//test.png");
	if (!src.data)
	{
		std::cout << "读取图片失败!" << std::endl;
		return -1;
	}
	else 
	{
		std::cout << "读取图片成功!" << std::endl;
	}

	//cv::namedWindow("src", cv::WINDOW_NORMAL);
	cv::imshow("src", src);

	cv::waitKey(0);
	return 0;
}

输出
在这里插入图片描述
但,这样不能正常显示

#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{
	cv::Mat src = cv::imread("D://workspace//opencv//project//test.png");
	if (!src.data)
	{
		std::cout << "读取图片失败!" << std::endl;
		return -1;
	}
	else 
	{
		std::cout << "读取图片成功!" << std::endl;
	}

	//cv::namedWindow("src", cv::WINDOW_NORMAL);
	cv::imshow("src", src);

	//cv::waitKey(0);
	return 0;
}

输出:
图片一闪而过就消失了

完整代码
#include <iostream>
#include "opencv2/opencv.hpp"

int main(int argc, char **argv)
{
	cv::Mat src = cv::imread("D://workspace//opencv//project//test.png");
	if (!src.data)
	{
		std::cout << "读取图片失败!" << std::endl;
		return -1;
	}
	else 
	{
		std::cout << "读取图片成功!" << std::endl;
	}

	cv::namedWindow("src", cv::WINDOW_NORMAL);
	cv::imshow("src", src);
	cv::waitKey(0);

	return 0;
}

输出:
在这里插入图片描述

总结

最容易犯错的地方就是图片的路径。
还有一种错误就是,明明路径都是对的,图片的真是存在,就是无法读取到图片,这种错误可能就出现在配置上问题了,解决方式是把配置OpenCV时的不带d的库不要进行配置或者删掉,保存并重新编译即可。
在这里插入图片描述

标签:src,读取,opencv,int,opencv2,OpenCV,include,cv,图片
来源: https://www.cnblogs.com/lvvou/p/14974755.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有