在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)变量时,没有输出结果怎么办?相关推荐

  1. C语言中 unsigned char 与 signed char 不同输出格式一些认识

    首先考虑下面代码输出什么? #include <stdio.h>int main(void){signed char a = -1;unsigned char b = -1;printf( ...

  2. unsigned char与char的区别

    两者都作为字符用的话是没有区别的,但当整数用时有区别: char 整数范围为-128到127( 0x80__0x7F),   而unsigned char 整数范围为0到255( 0__0xFF ) ...

  3. 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】

    ⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...

  4. unsigned char,char ,uchar ,UCHAR的区别

    unsigned char,uchar ,UCHAR,这几个都是表示的无符号的char,其实都是unsigned char的宏定义,所以就是一个东西. char占一个字节,能表示 -128 到127 ...

  5. unsigned char对应java_Java的数据类型,怎么就没有uchar呢

    作者:陈珏秀 真头疼,因为java的数据类型没有uchar.今天把之前用C写的程序改成java的,但是由于java的数据类型中没有uchar,部分内容得不到相关转换. 我想 将图像src的像素值,然后 ...

  6. c语言char输出字母,C语言unsigned char与char之间的转换及英文字符ASCII码和汉字内码输出...

    对于只认识0和1的机器来说是无法直接识别字符及汉字的.将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码.而剩下的低128位则留给英文字符使用,即英文的内码.如下程序所示: ...

  7. new unsigned char 什么意思

    最近看了一个程序,其中有这一句代码img = new unsigned char[Wid * Hei * 3];上网百度了一下,现将内容总和如下: 1)使用new关键字分配 Wid * Hei * 3 ...

  8. C++需要输出一个参数的地址时可能达不到预期的效果

    C++需要输出一个参数的地址时可能达不到预期的效果--学习c++ 在c++学习中, #include <iostream> int main() {const unsigned short ...

  9. string char* 16进制数字转化 unsigned char* 转化 字符串拼接

    项目中用到了16进制数字的转化 , 但是输出的是通过sha1加密,字符是两两转化为16进制数,要求是将其连接起来发送成一个字符串. 首先 要用到string时需要加载相关的头文件 #include & ...

最新文章

  1. 太牛逼!一款软件几乎可以操作所有的数据库!
  2. python进制转换内置函数_python数学运算、逻辑运算和进制转化相关的 内置函数...
  3. uiautomator日志文件转换为xml格式文件
  4. windows rt_如何在Windows RT上轻松将网站添加到Flash白名单
  5. Silverlight Blend动画设计系列
  6. [html] 什么是本地存储的有效期?
  7. go设置后端启动_为什么 Rubyists 应该考虑学习 Go
  8. Linux学习总结(50)——grep查看打印匹配的下几行或前后几行使用总结
  9. SpringCloud工作笔记085---SpringBoot项目中防止跨站脚本攻击功能添加
  10. 元胞自动机生命游戏C语言并行实现
  11. 3D变形tranform(附实例、图解)
  12. Java项目实战教程|最完整的Javaweb项目推荐(资料+源码分享)
  13. 曙光计算机能玩游戏吗,曙光英雄怎么在电脑上玩 用模拟器玩曙光英雄电脑版...
  14. cmd命令检查电脑配置情况
  15. 去掉word中的页眉
  16. shiny 服务器未响应,shiny-server 安装过程出现问题总结
  17. OpenSSL生成.key、.crt、.pfx证书(Windows下)
  18. SCI-EI-收录-检索-出版商 之间的关系
  19. 做一名优秀的软件开发qa_如何成为一名优秀的开发人员
  20. 《算法》读书笔记(一)

热门文章

  1. win10配置apache
  2. 初见“Linux——通配符,命令ls,别名alias,命令du”
  3. 认识Delphi的线程类
  4. 使用terminalizer工具录制终端生成GIF动画
  5. 关于文件句柄数和文件描述符的区分
  6. python3跑通smpl模型_SMPL模型改用python3+numpy计算
  7. 新建SVN仓库并上传项目
  8. linux下安装apache(详细教程)
  9. Bsp开发的几个层次
  10. np.piecewise函数用法