最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

用cout输出uchar(unsigned char)变量时,没有输出结果怎么办?

互联网 admin 0浏览 0评论

用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码对照表的链接:

我们把上面的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)变量时,没有输出结果怎么办?

在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码对照表的链接:

我们把上面的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;
}

运行结果如下图所示:

发布评论

评论列表 (0)

  1. 暂无评论