一、知识点
1、int waitKey(int delay = 0);
(1)、等待按键。 等待指定的毫秒数,返回按键的ASCII码。
(2)、返回值: int型,表示按键ASCII码。 若没有按键,指定时间过去,返回-1。
(3)、参数delay: 等待时间,单位毫秒ms。 默认0,表示一直等待。
二、示例代码
#include <iostream>
#include <opencv2/opencv.hpp>
void TestWaitKey(cv::Mat & src)
{
cv::Mat dst = cv::Mat::zeros(src.size(), CV_8UC3);
while (true)
{
int c = cv::waitKey(100);
if (c == 27)
{
break;
}
else if (c == 49)
{
std::cout << "you entered key #1" << std::endl;
cv::cvtColor(src, dst, cv::COLOR_BGR2GRAY);
}
else if (c == 50)
{
std::cout << "you entered key #2" << std::endl;
cv::cvtColor(src, dst, cv::COLOR_BGR2HSV);
}
else if (c == 51)
{
std::cout << "you entered key #3" << std::endl;
dst = cv::Scalar(50, 50, 50);
cv::add(src, dst, dst);
}
cv::imshow("按键后图像", dst);
}
}
int main()
{
cv::Mat src = cv::imread("../images/2.png");
if (src.empty())
{
std::cout << "load src image error..." << std::endl;
return -1;
}
cv::imshow("原始图像", src);
TestWaitKey(src);
return 0;
}