opencv学习第一节

程序解析

#include <opencv2/opencv.hpp>--头文件包含了OpenCV库的基本定义,使用Opencv功能的必要步骤

    int main(int argc, char** argv)--argc的意义是来计数后面的参数,程序可以根据argc的值来确定是否有足够的参数来执行特定的功能

{
    cv::Mat src = cv::imread("c:/images/123.jpg");--::作用域解析运算符,作用是访问命名空间中的成员

在OpenCV(一个用于计算机视觉任务的库)中,cv::Mat是一个类,用于表示矩阵(Matrix)。这个矩阵可以用来存储图像数据、各种特征向量等。

    ●    例如,在处理图像时,一幅图像可以看作是一个二维(彩色图像可能是三维,包含颜色通道)的矩阵,其中每个元素代表图像中的一个像素点的值。

    2.    cv::Mat src

    ●    这里的src是一个变量名,cv::Mat src的意思是定义了一个cv::Mat类型的变量src。

    ●    这个变量通常用来存储从文件读取的图像数据或者经过某些图像处理操作后得到的图像数据等。例如在代码cv::Mat src = cv::imread("image.jpg");中,src将被赋值为从image.jpg文件读取到的图像数据(以cv::Mat的形式表示)。


CV::imread可以理解成调用opencv中的调用读取图像功能



    if (src.empty()) {-


• 在OpenCV里,src如果是cv::Mat类型(例如cv::Mat src;这样定义的变量),src.empty()是一个函数调用。

• 它用于判断src这个矩阵(在图像读取场景下可以理解为图像)是否为空。如果src没有被正确初始化,或者在图像读取操作中没有成功读取到图像(例如文件不存在或者格式不被支持等情况导致cv::imread失败),那么src.empty()就会返回true;如果src已经被正确初始化并且包含有效数据(如成功读取到图像),则src.empty()返回false。

2. 代码示例中的使用

• 在类似下面这样的代码中:
cv::Mat src = cv::imread("image.jpg");
if (src.empty()) {
    std::cout << "图像读取失败" << std::endl;
    // 可以在这里进行错误处理,如提示用户重新选择文件等操作
} else {
    // 如果图像读取成功,可以进行后续的图像处理操作,如显示图像
    cv::imshow("读取到的图像", src);
}
• 这里就是通过src.empty()来判断图像是否成功读取,然后根据判断结果决定程序后续的操作


        std::cout << "could not load image...." << std::endl;--std理解成一个大箱子,里面装满了标准库的东西,例如输出cout,存放数据的vector,用std::来调用指令,避免混乱,若自己定义cout,c不知道该调用哪一个<<为插入的意思,将"could not load image...."插入到std::cout中, std::endl;是一个特殊的操作符,用于换行并刷新输出缓冲区。
        return -1;
    }
    cv::imshow("输入图像", src);--调用显示图像
    cv::waitKey(0);--作用是等待用户按键操作,,若不加此条指令调用显示图像程序会不停继续执行下去,图像一闪而过不会停留,CV::waitKey可以让程序暂定,等按下某个键是关闭图像窗口。如果为(0)函数会一直等待,知道用户按下下一个键为止,如为(1000)则等待1s,1000ms。
    return 0;
}
简单输出照片图像

若有理解错误,欢迎指正,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值