opencv

opencv_第1节 [图像读取与显示]

欢迎伙伴们一起学习opencv

1.本人从事软件开发2年,做过两三个像样的项目,并全部投入了市场使用;
2.本人在软件开发领域主要从事是基于C++ Qt进行PC端,ARM LINUX环境下的软件开发;
3.本人深知目前道行才刚刚入门,要想在该行业扎根,需有颗学无止境的心,故周末都坚持进行学习提升;
4. 本人在学习oencv阶段,会将个人见解,学习体会发布出来,主要还是给后续自己看的;
5. 本人发布的文章如果能帮助部分伙伴,那也将是件让自己愉快的事情,故如果有伙伴对我发布的opencv篇章有疑问,可私信我;
6. 因本人学习opencv是在初级阶段,故不会对opencv文章进行过多的描述;
7. 自己对所有出现的API理解,都写在了代码片段的注释中;
8. 后续本人进入opencv的高级阶段,甚至是从业者,会对当前发布的文章进行归纳,知识点补充;
9. 欢迎同道中人探讨,如果有前辈能指教一二,此乃本人有幸也。

接口详解

代码片段

#include <iostream>
#include <opencv.hpp>

using namespace std;
using namespace cv;

int main(const int argc, const char* argv[])
{	
	/* @class	 : Mat
	 * @brief	 : 该类为矩阵属性类,当前使用的为该类的默认构造 Mat可以表示N维数组,
				   数组的每个位置可以是单通道或多通道;可以用来存储图片(灰色或彩色),向量,直方图等;
				   Mat类分为矩阵头和指向存储数据的矩阵指针两部分;
				   矩阵头包含矩阵的尺寸,存储方法,地址和引用计数。
				   矩阵头是一个常数,绝大多数情况下,矩阵头的大小远小于矩阵数量的大小。
	* @Function	 : Mat()
	* @brief	 : Mat类的默认构造函数,不需要传递任何参数,在后续给变量赋值时会自动判断矩阵类型和大小,
				  实现灵活的存储,常用于存储读取的图像数据和某个函数运算的输出结果
	*/

	/* @Function : imread() : 
	 * @brief    : 用于读取数据
	 * @param    : 图像文件路径
	 * @param	 : 读取图像方式,默认为IMREAD_COLOR  IMREAD_GRAYSCALE -- 灰度图 具体参考cv::ImreadModes
	 * @return	 : Mat对象 
	 */
	Mat src = imread("D:/opencvVsDemo/Images/2.jpg");

	/* @Function : empty()
	 * @brief    : 检测Mat对象是否为空	 
	 * @return	 : 如果Mat::total() == 0 或 Mat::data() 为NULL,则返回true
	 */
	if (src.empty())
	{
		return -2;
	}

	/* @Function : nameWindow()
	 * @brief    : 创建一个窗口,创建的窗口通过它们的winname来引用
	 * @param    : 窗口标题中窗口名称,可以用作窗口标识符
	 * @param	 : 窗口属性标识 支持的标识有:cv::WindowFlags 例如 WINDOW_NORMAL -- 用户可以调整窗口大小 WINDOW_AUTOSIZE -- 窗口无法调整 受图像限制
	 */
	namedWindow("ss", WINDOW_NORMAL);

	/* @Function : imshow() :
	 * @brief    : 在指定窗口中显示图像。如果窗口是用cv::WINDOW_AUTOSIZE作为标识,则图像显示为原始大小,
	 *             否则图像将缩放以适应窗口大小,该函数缩放图像,取决于图像的深度。
				   具体如下:
				   1.如果载入的图像是8位无符号类型,就显示图像本来的样子
				   2.如果图像是16位无符号类型或32位整型,便用像素值除以256。值的范围是[0,255\*256]映射到[0,255]
				   3.如果图像是32位浮点型,像素值便要乘以255,值的范围是[0,1]映射到[0,255]
	 * @param    : 显示窗体的标识名称
	 * @param	 : 需要显示的图像 Mat对象
	 */
	imshow("ss", src);

	/* @Function  : waitKey()
	 * @brief	  : 无限地等待一个键盘事件或等待给定的延时毫秒 这个函数至少创建了1个HighGUI窗口并且处于活动状态下才有效
	 * @param	  : 阻塞时长 单位ms 默认为0 一直阻塞等待
	 * @return	  : 返回键盘输入的ASCII 如果时长到 未输出键盘字符 则返回-1
	*/
	waitKey();

	/* @Function  : destroyAllWindows()
	 * @brief	  : 销毁所有打开的HighGUI窗口
	*/
	destroyAllWindows();

	return 0;
}

例1:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值