OpenCV 键盘响应来切换图像
一、知识点
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;
}