/*
author:Maracle
date:二〇一六年四月五日
content:Function to change between color and grayscale
representations of an image using GUI trackbar.
*/
#include<iostream>
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
//全局变量
char* window_name = "Trackbar app";
Mat src;
int slider;
const int slider_max = 1;
//滑动条函数
void on_trackbar(int , void*)
{
Mat img_converted;
if (slider > 0)
{
cvtColor(src, img_converted, CV_RGB2GRAY);
}
else
img_converted = src;
imshow(window_name, img_converted);
}
int main()
{
src = imread("小黄人.png");
namedWindow(window_name);
imshow(window_name, src);
slider = 0;
createTrackbar("RGB<->GRAY", window_name, &slider, slider_max, on_trackbar);
while (char(waitKey(10)) != 'q'){}
return 0;
}