📜  使用C++在OpenCV中读取和显示图像

📅  最后修改于: 2021-05-30 20:02:23             🧑  作者: Mango

在本文中,我们将讨论使用C++中的OpenCV(开放源计算机视觉)打开图像。与Python不同,不需要C++中的任何其他库。 OpenCV C++附带了这个惊人的图像容器Mat,它可以为我们处理所有事情。从标准C++程序看到的唯一变化是包含名称空间cv ,该名称空间包含所有OpenCV函数,类和数据结构。在OPenCV中读取和显示图像需要以下功能:

imread()此函数用于读取图像,并接受以下2个参数:

  • filename:要加载的图像的完整地址为字符串类型。例如:“ C:\ users \ downloads \ sample.jpg”
  • 标志:这是一个可选参数,它确定读取图像的方式,并可以采用多个值,例如
    • IMREAD_COLOR:如果未提供任何参数,则默认的加载图像的方式。它以BGR格式加载图像。
    • IMREAD_UNCHANGED:它以原始形式加载图像。它还包括图像中存在的Alpha通道。
    • IMREAD_GRAYSCALE:它将图像加载为灰度图像。

输出:返回图像作为Mat对象

用法:

imshow()此函数用于显示图像,并接受以下两个参数:

  • winname窗口名:这是显示图像的窗口的标题,类型为字符串。
  • 图像:这是要显示的图像。它的类型是Mat ,C++图像容器。

输出:创建一个显示图像的窗口。

用法:

Mat :: empty():如果imread()函数无法加载图像或图像在指定路径下不存在,这可以帮助我们进行错误处理,并告诉我们Mat容器是否为空。

WaitKey():通过保持窗口打开直到用户按下某个键,此函数有助于长时间显示图像。

以下是相同的程序:

C++
// C++ program for the above approach
#include 
#include 
using namespace cv;
using namespace std;
  
// Driver code
int main(int argc, char** argv)
{
    // Read the image file as
    // imread("default.jpg");
    Mat image = imread("Enter the Address"
                       "of Input Image",
                       IMREAD_GRAYSCALE);
  
    // Error Handling
    if (image.empty()) {
        cout << "Image File "
             << "Not Found" << endl;
  
        // wait for any key press
        cin.get();
        return -1;
    }
  
    // Show Image inside a window with
    // the name provided
    imshow("Window Name", image);
  
    // Wait for any keystroke
    waitKey(0);
    return 0;
}


输入图片:

输出图像:

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”