c++ - 如何将 cv::Mat 类型从 CV_16UC1 转换为 CV_8UC1

标签 c++ opencv

我有一个 CV_16UC1 类型的 cv::Mat 图像,我在 CV_8UC1 中需要它,所以我可以在它上面运行 cv::integral。我不担心转换过程中溢出 - 本质上我只是想将图像从 unsigned short 批量转换为 unsigned char。

我在别处问过,有人建议 cvtColor , 但我不知道要使用什么转换代码。

最佳答案

使用 Mat::convertTo 怎么样? Documentation

一个简单的例子:(不确定你是否需要比例因子,因为我还没有尝试过)

Your16Image.convertTo(outputImage, CV_8UC1, scalefactor)

关于c++ - 如何将 cv::Mat 类型从 CV_16UC1 转换为 CV_8UC1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042024/

相关文章:

c++ - 字符串按位或

python - 对齐 X 射线图像 : find rotation, 旋转和裁剪

c# - 在 IIS 上发布时出现 EmguCV 异常

python - 使用 cv2.findContours 时出错

animation - 如何为视频中的图像制作动画

c++ - 如何检测程序编译时使用的子系统?

c++ - 当我忘记捕获异常时,如何强制编译器生成错误或警告

c++ - 如何拥有具有不同类型值的 map ?

c++ - 当存在可用的右值构造函数时,为什么会从右值调用类引用构造函数重载?

python - Python 中的多线程 cv2.imshow() 不起作用