如何使用 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; }
执行上述程序后,我们得到以下输出 −