如何使用 C++ 在 OpenCV 中加载和显示图像?

opencvc++server side programmingprogramming更新于 2025/5/14 18:22:17

在本主题中,我们将了解如何在 C++ 中使用 OpenCV 加载和显示图像。在 OpenCV 中加载和显示图像需要以下函数。

  •  MatMat 不是一个函数。它是一种数据结构,一种变量类型。与 C++ 中的 int、char 和 string 变量类型一样,Mat 是 OpenCV 的一个变量,它创建一个矩阵数据结构来加载图像。在这个程序中,我们写了 'Mat myImage;'. 这意味着我们声明了一个名为 'myImage' 的矩阵变量。
  •  namedWindow()它分配一些内存并创建一个窗口来显示图像。它的工作原理类似于相框。在 OpenCV 中,我们必须将该函数写成 "namedWindow("窗口名称",标志)"
  • 3. imread():此函数从指定位置读取图像。该程序从"C:\"驱动器读取图像。要使用此函数,您必须将其写成"imread("图像位置/带扩展名的图像名称",标志)"
  •  imshow():此函数在指定的窗口中显示图像。要使用此函数,您必须将其写成"imshow(窗口名称",矩阵名称)"
  •  waitKey():这是 OpenCV 的一个重要函数。要处理图像并执行操作,我们必须给系统一些时间。如果不这样做,程序就不会运行。

此函数会在关闭程序之前等待一段时间。如果使用 waitKey(10000),程序会在 10 秒后关闭。如果使用 waitKey(0),程序会获得所需的输出。此函数使我们能够给予系统所需的运行时间。等待用户的按键。当用户按下键盘上的任意键时,程序就会停止。此函数必须写成"waitKey(milliseconds)"。

  • destroyWindows():此函数会关闭所有窗口。创建窗口时,我们会分配一些内存。 destroyWindow() 函数将该内存释放给系统。

以下程序展示了如何使用 OpenCV 库加载和显示图像。

示例

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main() {
  Mat myImage;//声明一个名为 myImage 的矩阵//
  namedWindow("PhotoFrame");//声明用于显示图像的窗口//
   myImage = imread("lakshmi.jpg");//加载矩阵中名为 lakshme 的图像//
   if (myImage.empty()) {//如果图像未加载,则显示错误消息//
      cout << < "无法加载图像。" << endl;
      system("pause");//暂停系统并等待用户按下任意键//
      return-1;
   }
   imshow("PhotoFrame", myImage);//在 "myWindow" 窗口中显示存储在 'myImage" 中的图像//  
   destroyWindow("Photoframe");//关闭窗口并释放分配的内存//
   waitKey(0);//等待用户按下任意键
   return 0;
}

执行上述程序后,我们得到以下输出 −

输出


相关文章