C++ OpenCV:尽管CV_16UC3,但BGR值为负值

C++ OpenCV:尽管CV_16UC3,但BGR值为负值,c++,opencv,C++,Opencv,我简直无法理解opencv Mat的类型: CV_16UC3是众所周知的无符号16位3通道整数。然而,当我访问每个通道时,我会得到负值。根据Vec3s,是访问的关键字。以下是我所做的: Mat mat_l(img_height,img_width,CV_16UC3); mat_l = imread("/home/zhao/workspace/rectified_images/l_rectified_fountain.ppm"); cout << vec_mats_l[1].at<

我简直无法理解opencv Mat的类型:

CV_16UC3是众所周知的无符号16位3通道整数。然而,当我访问每个通道时,我会得到负值。根据Vec3s,是访问的关键字。以下是我所做的:

Mat mat_l(img_height,img_width,CV_16UC3);
mat_l = imread("/home/zhao/workspace/rectified_images/l_rectified_fountain.ppm");
cout << vec_mats_l[1].at<Vec3s>(44,500)[0] << " " 
     << vec_mats_l[1].at<Vec3s>(44,500)[1] << " " 
     << vec_mats_l[1].at<Vec3s>(44,500)[2] << endl;
Mat Mat_l(img_高度、img_宽度、CV_16UC3);
mat_l=imread(“/home/zhao/workspace/rectived_images/l_rectived_fountain.ppm”);
cout尝试imread(路径-1)

如果没有该标志,图像将强制进入CV_8UC3


(您可以使用
cout-thx检查结果,这解决了我的问题。Mat.type()中可能返回值的列表及其含义:。此外,如果图像只有8位颜色,并且您希望打印出值,请不要