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

时间:2013-09-27 03:00:47

标签: c++ opencv

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

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

2 个答案:

答案 0 :(得分:9)

如何使用Mat :: convertTo? Documentation

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

Your16Image.convertTo(outputImage,CV_8UC1,scalefactor)

答案 1 :(得分:0)

您可以使用cv::convertScaleAbs直接将输出矩阵设置为unsigned char。