OpenCV速成(1)——OpenCV读取显示图片

0x00.本节课你将学到

0x01.OpenCV如何读取/显示图片

首先我们在项目文件夹中放好一张图片,我这里选择opencv常用的lena

将以下代码中的lena.jpg修改为自己的图片名(不一定是jpg,opencv支持很多图片格式)

#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;

int main() 
{
	Mat lena; // Opencv中使用Mat存储图像,Mat是矩阵
	lena = imread("lena.jpg"); //读取当前目录下的lena.jpg,放到lena这个Mat中
	imshow("lena image", lena);//展示lena这个Mat中的图像,窗口名为“lena image”
	waitKey(0);//在弹出的窗口中等待键盘事件,按下之后继续往后执行
	return 0;
}

运行结果如下

在弹出的窗口上按任意键即可退出程序

0x02.Opencv如何获取摄像头图像

Opencv中有一个VideoCapture,即视频捕获器

VideoCapture对象中有个open函数,open函数可以传入字符串或整数,字符串指视频名,整数指摄像头的编号,详情见以下代码

#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;

int main() 
{
	VideoCapture cameraCap; //视频捕获器
	Mat image;

	cameraCap.open(0);	//打开默认摄像头
	//cameraCap.open的参数可以是数字,数字为摄像头编号
	//也可以是字符串,字符串是视频文件名,opencv支持大多数常见视频格式
	cameraCap.read(image);//从cameraCap中取出一帧,放到image中
	if (!image.empty())//如果image不是空图像
	{
		imshow("Camera", image);
		waitKey(0);
	}
	return 0;
}

运行结果如下

0x03.Opencv如何动态显示摄像头图像

在上一个程序中,我们可以发现,我们一次read只获取了一帧图像,我们要是想让图像动起来,我们需要一个循环,源源不断从摄像头获取图像

我们还需要一个方法,让程序正常退出,在此我要简单介绍一下上面两个程序中都出现过的waitKey函数

waitKey函数是有返回值的,返回的内容是按下按键的按键值

waitKey的参数是delay,当delay为0时,waitKey函数就一直在暂停状态,直到用户按下按键。当delay>0时,waitKey会暂停delay毫秒

我们发现,waitKey可以用于判断何时中断程序,于是有了如下代码

#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;

int main() 
{
	VideoCapture cameraCap;
	Mat image;

	cameraCap.open(0);	

	do
	{
		cameraCap.read(image); //读取一帧
		imshow("Camera", image); //显示刚刚读取的一帧
		if (waitKey(20) == 'q') //如果在20ms内按下q,就进入if,否则就继续循环
		{
			break;
		}
	} while (!image.empty()); //当image不为空的时候

	return 0;
}

运行结果如下

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇