#include <iostream>
#include <opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("t.jpg");
Mat grey;
cvtColor(img, grey, CV_BGR2GRAY);
Mat sobelx;
Mat sobely;
Sobel(grey, sobelx, CV_32F, 1, 0);
Sobel(grey, sobely, CV_32F, 0, 1);
double minVal_x, minVal_y, maxVal_x, maxVal_y;
minMaxLoc(sobelx, &minVal_x, &maxVal_x); //find minimum and maximum intensities
minMaxLoc(sobely, &minVal_y, &maxVal_y); //find minimum and maximum intensities
Mat draw_x;
Mat draw_y;
sobelx.convertTo(draw_x, CV_8U, 255.0/(maxVal_x - minVal_x), -minVal_x * 255.0/(maxVal_x - minVal_x));
sobely.convertTo(draw_y, CV_8U, 255.0/(maxVal_y - minVal_y), -minVal_y * 255.0/(maxVal_y - minVal_y));
namedWindow("sobelx", CV_WINDOW_AUTOSIZE);
imshow("sobelx", draw_x);
//waitKey();
namedWindow("sobely", CV_WINDOW_AUTOSIZE);
imshow("sobely", draw_y);
waitKey();
return 0;
}