OpenCV 学习笔记-day1(图像读取显示imread,imshow,namedWindow)

本文介绍了如何使用OpenCV的基本函数,如imread读取图像,imshow显示图像,namedWindow创建窗口,以及waitKey等待用户操作。通过实例展示了如何在Windows桌面显示图片,并处理图像文件的色彩类别和窗口属性设置。
摘要由CSDN通过智能技术生成

day1-图像读取显示

 用OpenCV开发模块,打开主机目录中的一张图片,
 并显示在桌面上

函数:

highug模块中的imread,imshow,namedWindow,imwrite函数

  1. imread() 读取图像

Mat imread(const string& filename, int flags=1)

参数说明
filename读取文件的地址文件名
flags读取图像的颜色类别(flags=1:(默认参数)表示返回3通道图像;CV_LOAD_IMAGE_ANYEPTH:返回16bit或32bit图像(当输入相同深度时),否则返回8bit图像;CV_LOAD_IMAGE_COLOR:返回单色图像;CV_LOAD_IMAGE_GRAYSCALE:返回为通道图像;0:返回为单通道图像;<0:不对图像进行通道转换;>0:强制转换为3通道图像。

例1

//图像读取
Mat scr = imread("D:\\学习\\OpenCV学习\\pictures\\image\\1.jpg");
  1. imshow() 在指定的窗口显示一幅图像
    void imshow(const String& winname, InputArray mat);
参数说明
winnameconst string&类型的winname,指需要显示的窗口标识名称
matInputArray类型的mat,指需要显示的图像

notes:imshow() 1,只支持8位和浮点数显示 RGB颜色空间;
2, RGB颜色空间:B G R 三个通道 三色组合 255255255 还有透明通道

例2

imshow("窗口1",scr);//在创建的窗口1显示
  1. namedWindow() 创建新的窗口

void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);

参数说明
winnameconst String& 的 winname,用做窗口标识符的窗口名称
flags窗口的标识,一般默认为WINDOW_AUTOSIZE 通过显示的图像约束窗口的大小

notes:
CV_WINDOW_NORMAL 将窗口更改为正常大小或使窗口可调整大小。.
CV_WINDOW_AUTOSIZE 通过显示的图像约束窗口的大小。该窗口不可调整大小。.
CV_WINDOW_FULLSCREEN 将窗口更改为全屏.
CV_WINDOW_FREERATIO 使窗口在没有比率约束的情况下可调整大小.
CV_WINDOW_KEEPRATIO 使窗口可调整大小,但保留所显示图像的比例

例3

namedWindow("窗口1", WINDOW_NORMAL);//创建 WINDOW_FREERATIO窗口
  1. waitkey() 等待键入

int waitKey(int delay = 0);
waitKey函数的功能是不断刷新图像,频率时间为delay,单位为ms,返回值为当前键盘按下的值,没有按键时返回-1

例4

waitKey(0);//无限循环
while(1){ if(waitKey(100)==27)break; }
//在这个程序中,告诉OpenCv等待用户触发事件,
//等待时间为100ms,如果在这个时间段内, 用户按下ESC(ASCII码为27),则跳出循环,否则,则跳出循环

代码:

QuickDemo.cpp

#include <iostream>
#include <opencv2\highgui.hpp>
#include <opencv2\imgproc.hpp>

using namespace cv;
using namespace std;

int main()
{
	Mat scr = imread("D:\\学习\\OpenCV学习\\pictures\\image\\1.jpg");//打开一张图
	if (!scr.data == 1)//判空
		return -1;
	namedWindow("窗口1", WINDOW_FREERATIO);//创建 WINDOW_FREERATIO窗口
	imshow("窗口1",scr);//在创建的窗口显示
	waitKey(0);//延时 0->一直延时 1->延时1ms
	return 0;
}

notes:
判空的条件(如上完整代码所示):
1,scr.empty();//判断是否为窗体,if未加载成功则是空白,print: could not laod image;
2,scr.data;//if(!scr.data)==1 未读取成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值