QuickDemo.cpp
#include<quick_opencv.h>
//键盘响应
void QuickDemo::key_demo(Mat &image)
{Mat dst=Mat::zeros(image.size(),image.type());while (true) {char c = waitKey(100);if (c == 27) {//key #esc,退出break;}if (c == 49) {//key #1,按键1,打印you print key #1,将原图变灰度图并展示std::cout << "you print key #1" << std::endl;cvtColor(image, dst, COLOR_BGR2GRAY);}if (c == 50) {//key #2,按键2,打印you print key #2,将原图变HSV图并展示std::cout << "you print key #2" << std::endl;cvtColor(image, dst, COLOR_BGR2HSV);}if (c == 51) {//key #3,按键3,打印you print key #3,将原图增加50的亮度并展示std::cout << "you print key #3" << std::endl;dst = Scalar(50, 50, 50);add(image, dst, dst);}imshow("键盘响应", dst);}
}
quick_opencv.h
#include<opencv2\opencv.hpp>
using namespace cv;
class QuickDemo{public:void key_demo(Mat &image);//键盘响应
};
main.cpp
#include<opencv2/opencv.hpp>
#include<quick_opencv.h>
#include<iostream>using namespace cv;
using namespace std;int main(int argc, char** argv)
{//读取并显示图像,如果imread返回的Mat对象(src)是空的,打印错误消息并退出程序。Mat src = imread("C:/Users/Desktop/opencv-0/win.png");//B G R 蓝绿红if (src.empty()){printf("could not find the image...\n");return -1;}namedWindow("原图", WINDOW_FREERATIO);//创建一个可以自由调整比例的窗口imshow("原图", src);//创建QuickDemo类的实例qdQuickDemo qd;//键盘响应qd.key_demo(src);//等待用户输入并清理资源waitKey(0);destroyAllWindows();return 0;
}
按键esc退出程序。
注意必须点击原图上再输入1或2或3才有响应。