findChessboardCorners IS GIVING GARBAGE VALUE IN CORNERS : Here is my code

    #include <opencv/cv.h> 
    #include <opencv/highgui.h>
    #include<opencv2/opencv.hpp>
    
    #include<iostream>
    //#include<vector>
    
    using namespace cv;
    using namespace std;
    
    int main()
    {
    	VideoCapture cap = VideoCapture(0);
    	int successes = 0;
    
    	int numBoards = 0;
    	int numCornersHor = 6;
    	int numCornersVer = 4;
    
    	int numSquares = (numCornersHor - 1) * (numCornersVer - 1);
    	Size board_sz = Size(numCornersHor, numCornersVer);
    	
    
    
    	vector<Point2f> corners;
    
    
    	for (;;)
    	{
    		Mat img;
    		cap >> img;
    		Mat gray;
    		cvtColor(img, gray, CV_RGB2GRAY);
    		if (img.empty()) break; // end of video stream
    		imshow("this is you, smile! :)", gray);
    		if (waitKey(1) == 27) break; // stop capturing by pressing ESC 
    		
    		
    	bool found = findChessboardCorners(gray, board_sz, corners, CALIB_CB_ADAPTIVE_THRESH);
    	if (found == 1)
    	{
    		cout << corners.size()<<"\n";
    	
    		cornerSubPix(gray, corners, Size(11, 11), Size(-1, -1), TermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1));
    		drawChessboardCorners(gray, board_sz, corners, found);
    	}
    	
    	}
    
    	cap.release();
    		waitKey();
    		return 0;
    	}

What code is doing is, if "chessBoard" is found during capturing frames from webcam, it will print the corner size (I did it because I was not getting the output of the tutorial code and I wanted to find where the bug is!)

Here is the image of my output:[1]


  [1]: http://i.stack.imgur.com/S1ewO.png