OpenCV 学习笔记
day8-键盘响应操作
函数
waitKey(); 等待键入
当使用键盘键入适当字符时 触发某些操作
代码
quickopencv.h
#pragma once
#include <opencv2\highgui.hpp>
#include <opencv2\imgproc.hpp>
using namespace cv;
//定义类
class QuickDemo{
public:
void colorSpace_Demo(Mat &image);//色彩空间转换函数2021-12-24
void mat_creation_demo(Mat &image);//Mat对象与创建2021-12-27
void pixel_vist_Demo(Mat &image);//图像像素的读写操作2022-1-3
void operators_demo(Mat &image);//图像像素的算数操作2022-1-4
void tracking_bar_demo(Mat &image);//滚动条操作演示2022-1-7
void key_demo(Mat &image);//键盘响应操作2022-1-12
};
OpencvTest.cpp
#include <iostream>
#include <opencv2\highgui.hpp>
#include <opencv2\imgproc.hpp>
#include<quickopencv.h>
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_NORMAL);//创建 WINDOW_FREERATIO窗口
imshow("窗口1",scr);//在创建的窗口显示
QuickDemo qd;
qd.key_demo(scr);//键入操作
waitKey(0);
return 0;
}
#include <opencv2\highgui.hpp>
#include <opencv2\imgproc.hpp>
#include<quickopencv.h>
#include <iostream>
void QuickDemo::key_demo(Mat &image)
{
Mat dst = Mat::zeros(image.size(), image.type());
while (true)
{
int c = waitKey(100);
if (c == 27)//键盘键入 ESC键 退出
{
break;
}
if (c == 49){//键盘键入 1 可以当键入1时 添加一些功能 比如转成灰度图像
//std::cout << "you enter key #1" << std::endl;
cvtColor(image, dst, COLOR_BGR2GRAY);//转灰度
}
if (c == 50){//键盘键入 2 转hsv
//std::cout << "you enter key #2" << std::endl;
cvtColor(image, dst, COLOR_BGR2HSV);//转hsv
}
if (c == 51){//键盘键入 3 调整亮度
Mat m = Mat::zeros(image.size(), image.type());
m = Scalar(50, 50, 50);
add(image,m,dst);
std::cout << "you enter key #3" << std::endl;
}
imshow("键盘响应", dst);
}//while
}
显示结果
未键入任何字符时
键盘键入1 转换为灰度图像
键盘键入2 转换为hsv图像
键盘键入3 图片增加亮度
键入 ESC键 退出