我有以下代码:
cvtColor (image, image, CV_BGRA2RGB);
Vec3b bottomRGB;
bottomRGB=image.at<Vec3b>(821,1232);
当我显示bottomRGB[0]时,显示的值大于255,这是什么原因?
When I display bottomRGB[0], it displays a value greater than 255. What is the reason for this?
正如你所评论的,原因是你使用 cout 直接打印其内容.在这里,我将尝试向您解释为什么这行不通.
As you have commented, the reason is that you use cout to print its content directly. Here I will try to explain to you why this will not work.
cout << bottomRGB[0] << endl;
"cout" 对 "unsigned char" 工作很奇怪?它不会工作,因为这里 bottomRGB[0] 是一个 unsigned char(值为 218),cout 实际上会打印一些垃圾值(或什么都不打印),因为它只是一个不可打印 ASCII 字符,无论如何都会打印出来.请注意,对应于 218 的 ASCII 字符是不可打印的.在此处查看 ASCII 表.
"cout" works weird for "unsigned char"?It will not work because here bottomRGB[0] is a unsigned char (with value 218), cout actually will print some garbage value (or nothing) as it is just a non-printable ASCII character which is getting printed anyway. Note that ASCII character corresponding to 218 is non-printable. Check out here for the ASCII table.
附言您可以使用 bottomRGB[0] 是否可打印>isprint() 为:
P.S. You can check whether bottomRGB[0] is printable or not using isprint() as:
cout << isprint(bottomRGB[0]) << endl; // will print garbage value or nothing
它将打印0(或false)表示字符不可打印
It will print 0 (or false) indicating the character is non-printable
对于您的示例,要使其工作,您需要在 cout 之前先键入 cast:
For your example, to make it work, you need to type cast it first before cout:
cout << (int) bottomRGB[0] << endl; // correctly printed (218 for your example)
这篇关于为什么“cout"?对“无符号字符"工作很奇怪?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
断言失败(size.width>0 && size.height&gAssertion failed (size.widthgt;0 amp;amp; size.heightgt;0)(断言失败(size.width0 amp;amp; size.height0))
在 C++ 中旋转图像而不使用 OpenCV 函数Rotate an image in C++ without using OpenCV functions(在 C++ 中旋转图像而不使用 OpenCV 函数)
OpenCV:处理每一帧OpenCV: process every frame(OpenCV:处理每一帧)
为什么我不能在 openCV 中打开 avi 视频?Why can#39;t I open avi video in openCV?(为什么我不能在 openCV 中打开 avi 视频?)
OpenCV 无法设置 SVM 参数OpenCV unable to set up SVM Parameters(OpenCV 无法设置 SVM 参数)
使用 cvtColor 转换单一颜色Convert a single color with cvtColor(使用 cvtColor 转换单一颜色)