为什么用mat.at(i,j)求出的结果不是0-255之间的数,有图,该如何解决

为什么用mat.at<uchar>(i,j)求出的结果不是0-255之间的数,有图

#include<opencv\cv.h>
#include<opencv\highgui.h>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;

int main(int argc,char** argv)
{
Mat img=imread("C:\\Users\\Administrator\\Desktop\\...\\1.jpg");
int i,j=0;
for(i=0;i<img.rows;i++)
{
for(j=0;j<img.cols;j++)
{
cout<<img.at<uchar>(i,j);
}
cout<<endl;
}
//cout<<img;
getchar();
return 0;
}

结果是这样的。。。
为什么用mat.at<uchar>(i,j)求出的结果不是0-255之间的数,有图,该如何解决
------解决思路----------------------
imread后先imshow一下,看看有没有成功的把图像读到内存先,如果是3通道图,你的输出方式明显也不对
for ( int i = 0; i < imgSource->height; ++i )

{

                  uchar * pucPixel = (uchar*)imgSource->imageData + i*imgSource->widthStep;

                  for ( int j = 0; j < imgSource->width; ++j )

                  {       

pucPixel[3*j] = 0;//像素第一个通道的值

                          pucPixel[3*j + 1] = 0;//像素第二个通道的值

                          pucPixel[3*j + 2] = 0;//像素第三个通道的值

                  }

}