opencv学习—读取并且显示图像
程序员文章站
2024-03-09 13:49:23
...
opencv学习—读取并且显示图像
目录
1、头文件
#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>
#include<iostream>
#include<string>
highgui模块,它包含输入和输出操作的功能
以及添加命名空间
C++的命名空间:using namespace std;
opencv的命名空间:using namespace cv;
2、创建一个Mat对象
Mat image;
image = imread(imageName, IMREAD_COLOR);
imread函数进行图像的读取。第二个参数指定了我们想要的图像的格式。
参数选择如下:
- IMREAD_UNCHANGED(<0)按原样加载图像(包括alpha通道(如果存在)
- IMREAD_GRAYSCALE(0)将图像作为强度加载
- IMREAD_COLOR(> 0)以RGB格式加载图像
3、显示图像
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", image);
先创建一个可以显示图像的窗口namedWindow
WINDOW_AUTOSIZE:让窗口图像占据显示图像的大小,不允许调整大小
4、控制窗口显示时间
waitKey(0);
窗口被显示直到用户按下下一个键,避免程序结束太快。
5、读取并且显示图像代码
#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>
#include<iostream>
#include<string>
using namespace std;
using namespace cv;
int main(int argc,char** argv) {
String imageName("E:/backlit/1.jpg");
if (argc>1)
{
imageName = argv[1];
}
Mat image;
image = imread(imageName, IMREAD_COLOR);
if (image.empty())
{
cout << "Could not open or Find the image" << endl;
return -1;
}
namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
imshow("Display window", image);
waitKey(0);
return 0;
}
上一篇: 学习Java多线程之volatile域