马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、知识点:
1、读取图像
(1)、Mat imread( const String & filename, int flags = IMREAD_COLOR_BGR );
(2)、返回值: Mat,返回读取的图像。 若读取图像失败,则返回一个空的对象,对象.empty()为true。
(3)、参数filename: String是std::string别名,要读取图像的文件名,带文件后缀。
(4)、参数flags: 用于选择读取图像的方式,即用什么颜色格式读取图像,默认IMREAD_COLOR_BGR。
IMREAD_UNCHANGED //按原样返回加载的图像
IMREAD_GRAYSCALE //将图像转换为单通道灰度图像
IMREAD_COLOR_BGR //将图像转换为3通道BGR彩色图像
IMREAD_COLOR //同IMREAD_COLOR_BGR
IMREAD_ANYDEPTH //当输入具有相应的深度时,返回16位/32位图像,否则将其转换为8位
IMREAD_ANYCOLOR //以任何可能的颜色格式读取图像
IMREAD_LOAD_GDAL //利用gdal驱动程序加载图像
IMREAD_REDUCED_GRAYSCALE_2 //将图像转换为单通道灰度图像,图像巨细减小1/2
IMREAD_REDUCED_COLOR_2 //将图像转换为3通道BGR彩色图像,并将图像巨细减小1/2
IMREAD_REDUCED_GRAYSCALE_4 //将图像转换为单通道灰度图像,图像巨细减小1/4
IMREAD_REDUCED_COLOR_4 //将图像转换为3通道BGR彩色图像,并将图像巨细减小1/4
IMREAD_REDUCED_GRAYSCALE_8 //将图像转换为单通道灰度图像,图像巨细减小1/8
IMREAD_REDUCED_COLOR_8 //将图像转换为3通道BGR彩色图像,图像巨细减小1/8
IMREAD_IGNORE_ORIENTATION //不要根据EXIF的方向标志旋转图像
IMREAD_COLOR_RGB //将图像转换为3通道RGB彩色图像
2、表现图像
(1)、void imshow(const String & winname, InputArray mat);
(2)、参数winname: 用于表现图像的窗口名称,自定义。
(3)、参数mat: 必要被表现的图像。
(4)、默认情况下,imshow会自动调解窗口巨细,将图片按原始巨细表现,但当图片尺寸凌驾屏幕分辨率时,会发生图片表现不全标题。
(5)、解决办法: 在imshow()之前调用namedWindow()。
3、创建窗口
(1)、void namedWindow(const String & winname, int flags = WINDOW_AUTOSIZE);
(2)、参数winname: 创建的窗口名称,自定义,用于标识窗口。 如果同名窗口已存在,则该函数不执行任何操作。
(3)、参数flags: 窗口标志,默认WINDOW_AUTOSIZE。
WINDOW_NORMAL //用户可调解窗口巨细,可将全屏窗口切换到正常巨细
WINDOW_AUTOSIZE //用户无法调解窗口巨细,巨细受表现的图像限制
WINDOW_OPENGL //支持OpenGL的窗口
WINDOW_FULLSCREEN //将窗口设为全屏
WINDOW_FREERATIO //图像尽可能地扩展,无比例限制
WINDOW_KEEPRATIO //遵守图像比例
WINDOW_GUI_EXPANDED //状态栏和工具栏
WINDOW_GUI_NORMAL //老式的时尚方式
(4)、窗口可以用作图像和轨迹条。
4、销毁窗口
(1)、void destroyAllWindows();
(2)、销毁所有打开的窗口。
5、等待按键
(1)、int waitKey(int delay = 0);
(2)、返回值: int型,返回按键代码。 若没有按键,指定时间过去,返回-1。
(3)、参数delay: 等待时间,单位毫秒ms。 默认0,表示不停等待。
二、示例代码:
- #include <iostream>
- #include <opencv2/opencv.hpp>
- int main()
- {
- cv::Mat src = cv::imread("C:\\Users\\ml\\Desktop\\Test\\MyOpenCVTest\\images\\1.png", cv::IMREAD_UNCHANGED);
- if (src.empty())
- {
- std::cout << "Could not load image..." << std::endl;
- return -1;
- }
- cv::namedWindow("加载图像", cv::WINDOW_FREERATIO);
- cv::imshow("加载图像", src);
- //辅助作用,如果不等待,代码会继续往后执行,销毁窗口、返回,程序会一闪而过,人眼看不到图像显示。
- cv::waitKey(0);
- cv::destroyAllWindows();
- return 0;
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |