用cout输出uchar(unsigned char)变量时,没有输出结果怎么办?
Posted 昊虹图像算法
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用cout输出uchar(unsigned char)变量时,没有输出结果怎么办?相关的知识,希望对你有一定的参考价值。
在OpenCV中uchar实际上就是unsigned char,其定义如下:
typedef unsigned char uchar;
在图像处理中,我们经常用unsigned char代表我们的灰度值,因为灰度值的范围刚好是0~255嘛。
于是,习惯性地用久之后我们就容易真把它当成一个0~255的数值型变量了。
但实际上,它是字符型变量,所以当我们cout输出下面变量的值时,你是看不到什么结果的。
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
uchar a1 = 255;
uchar b1 = 7;
std::cout << "a1的值为:"<< a1 << std::endl;
std::cout << "b1的值为:" << b1 << std::endl;
return 0;
原因见下面这幅图:
附一个ASCII码对照表的链接:
https://zhuanlan.zhihu.com/p/408357733
我们把上面的a1和b1的值改一下,就有输出了,代码如下:
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
uchar a1 = 87;
uchar b1 = 35;
std::cout << "a1所代表的ASCII字符为:"<< a1 << std::endl;
std::cout << "b1所代表的ASCII字符为::" << b1 << std::endl;
return 0;
如果要强制输出其数字值,我们可以作一个强制类型转换。
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
uchar a1 = 255;
uchar b1 = 7;
std::cout << "a1的值为:" << int(a1) << std::endl;
std::cout << "b1的值为:" << int(b1) << std::endl;
return 0;
运行结果如下图所示:
以上是关于用cout输出uchar(unsigned char)变量时,没有输出结果怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
在C++中,浮点型数据(float型)向uchar(unsigned char)强制类型转换是一种什么样的结果?
#include <reg52.h> #define uchar unsigned char //宏定义 #define uint unsigned int void de
大神看看这个C语言结构体程序都是哪里不对。100分送上。uchar,uint是宏定义的unsign