用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语言中 unsigned char 与 signed char 不同输出格式一些认识
首先考虑下面代码输出什么? #include <stdio.h>int main(void){signed char a = -1;unsigned char b = -1;printf( ...
- unsigned char与char的区别
两者都作为字符用的话是没有区别的,但当整数用时有区别: char 整数范围为-128到127( 0x80__0x7F), 而unsigned char 整数范围为0到255( 0__0xFF ) ...
- 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】
⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...
- unsigned char,char ,uchar ,UCHAR的区别
unsigned char,uchar ,UCHAR,这几个都是表示的无符号的char,其实都是unsigned char的宏定义,所以就是一个东西. char占一个字节,能表示 -128 到127 ...
- unsigned char对应java_Java的数据类型,怎么就没有uchar呢
作者:陈珏秀 真头疼,因为java的数据类型没有uchar.今天把之前用C写的程序改成java的,但是由于java的数据类型中没有uchar,部分内容得不到相关转换. 我想 将图像src的像素值,然后 ...
- c语言char输出字母,C语言unsigned char与char之间的转换及英文字符ASCII码和汉字内码输出...
对于只认识0和1的机器来说是无法直接识别字符及汉字的.将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码.而剩下的低128位则留给英文字符使用,即英文的内码.如下程序所示: ...
- new unsigned char 什么意思
最近看了一个程序,其中有这一句代码img = new unsigned char[Wid * Hei * 3];上网百度了一下,现将内容总和如下: 1)使用new关键字分配 Wid * Hei * 3 ...
- C++需要输出一个参数的地址时可能达不到预期的效果
C++需要输出一个参数的地址时可能达不到预期的效果--学习c++ 在c++学习中, #include <iostream> int main() {const unsigned short ...
- string char* 16进制数字转化 unsigned char* 转化 字符串拼接
项目中用到了16进制数字的转化 , 但是输出的是通过sha1加密,字符是两两转化为16进制数,要求是将其连接起来发送成一个字符串. 首先 要用到string时需要加载相关的头文件 #include & ...
最新文章
- 太牛逼!一款软件几乎可以操作所有的数据库!
- python进制转换内置函数_python数学运算、逻辑运算和进制转化相关的 内置函数...
- uiautomator日志文件转换为xml格式文件
- windows rt_如何在Windows RT上轻松将网站添加到Flash白名单
- Silverlight Blend动画设计系列
- [html] 什么是本地存储的有效期?
- go设置后端启动_为什么 Rubyists 应该考虑学习 Go
- Linux学习总结(50)——grep查看打印匹配的下几行或前后几行使用总结
- SpringCloud工作笔记085---SpringBoot项目中防止跨站脚本攻击功能添加
- 元胞自动机生命游戏C语言并行实现
- 3D变形tranform(附实例、图解)
- Java项目实战教程|最完整的Javaweb项目推荐(资料+源码分享)
- 曙光计算机能玩游戏吗,曙光英雄怎么在电脑上玩 用模拟器玩曙光英雄电脑版...
- cmd命令检查电脑配置情况
- 去掉word中的页眉
- shiny 服务器未响应,shiny-server 安装过程出现问题总结
- OpenSSL生成.key、.crt、.pfx证书(Windows下)
- SCI-EI-收录-检索-出版商 之间的关系
- 做一名优秀的软件开发qa_如何成为一名优秀的开发人员
- 《算法》读书笔记(一)