C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)

C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)

  • 前言       

        学习C++ OpenCV,第一需要具备向对象语言的基础,第二要对图像处理机器学习有基础了解,容易入门。觉得自己基础已经有了可以忽略前面两条,直奔OpenCV SDK,学习OpenCV最好的资料是OpenCV社区的教程和文档,其次是各种视频资源与博客文章。

        首先是环境配置教程(个人觉得很不错) : 

        VS2019环境下配置C++ 项目OpenCV4.1.0教程https://blog.csdn.net/m0_37360684/article/details/89716881icon-default.png?t=LA92https://blog.csdn.net/m0_37360684/article/details/89716881

        其次是Python环境下Opencv相关教程(有Python基础或学习意向推荐参考):

        Python下opencvhttps://blog.csdn.net/on2way/article/details/46789931icon-default.png?t=LA92https://blog.csdn.net/on2way/article/details/46789931

OpenCV概述

OpenCV是一个开源发行的跨平台计算机视觉和机器学习软件库,提供了图像处理和计算机视觉方面的很多通用算法。而现在我们将要学习的是C++环境下Opencv库的使用。

一 . 开始第一步-展示图片

 1.main.cpp 源码

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

//主函数
int main(void)
{
	//定义Mat 类 对象src
	cv::Mat src;
	
	//读取图像
	src = cv::imread("DrawPractice.jpg");

	//展示图片
	cv::imshow("Draw", src);

	//暂停 -- 等待下一步操作
	cv::waitKey(0);

	return 0;
}

2.当前路径下存有图片  DrawPractice.jpg

3.让我们逐步分析源码语句

        第一步在原有C++程序上包含opencv库头文件

(标准输入输出库)常用

#include<iostream>

 (Opencv库头文件)

#include<opencv2/opencv.hpp>

抉择-----是否全局引入std命名空间和cv命名空间

using namespace std;
using namespace cv;
这两句是引入工作空间,std是c++标准库的工作空间名,cv是opencv的工作空间名。
(工作空间的目的是避免 如果两个库有相同的函数名,在调用函数时发生冲突,
 上文这两个库里没有重复的函数名,所以直接引入工作空间不会有影响。)

引入命名空间后 大部分代码块将不再使用cv:: 来进行标识 如(Mat src;) 而不是 (cv::Mat src;)

个人初学时 常使用cv::标识形式 以提醒自己 所调用的函数或类 在 Opencv库中 

定义一个Mat 类对象 src

	cv::Mat src;

在当前路径下读取图像

	src = cv::imread("DrawPractice.jpg");

  cv::imread() ---- 函数解析

	//读取图像
    cv::imread("图像路径",读取模式)

    此处图像路径可以为 当前路径 即 DrawPractice.jpg
    也可以为 绝对路径 如 F:\\code\\编程练习草稿\\opencv2\\DrawPractice.jpg
    (备注 :: C++语法中 \ 为转义字符 所以 使用\\ 双斜杠代替 \ 避免路径解析错误)    

    //读取模式
    未传入参数视为 默认彩色
    0:读入的为灰度图像(即使图像为彩色的)
    1:读入的图像为彩色的(默认);
    //实例
    //读入灰度图像
    src = cv::imread("DrawPractice.jpg" , 0);
    //默认读入彩色图像
	src = cv::imread("DrawPractice.jpg");

展示上文读取的图像 

	cv::imshow("Draw", src);
    参数 : (展示窗口名 , 上文定义的Mat类对象src)

暂停 -- 等待下一步操作

	cv::waitKey(0);
    显示图片后开始等待下一步操作。
    如果不加这条命令的话,自己屏幕上会有一个黑框一闪而过,
    图片也不会显示出来,程序显示图片后直接关闭了程序。


二--跑起来看看成果

 那么第一期就结束啦 

猜你喜欢

转载自blog.csdn.net/qq_43267525/article/details/121438715
今日推荐