2013-09-27 2350 views
3

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

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

+0

http://docs.opencv.org/modules/core/doc/basic_structures.html#mat-convertto –

回答

8

如何使用Mat :: convertTo? Documentation

一个简单的例子:(不知道你是否需要比例因子虽然,因为我没试过)

Your16Image.convertTo(outputImage,CV_8UC1,比例因子)

+0

这对我有用 - 但事实证明,我需要cv :: threshold,因为我想输入一个二进制图像到cv :: integral。注意到任何人都有类似的问题。 cv :: threshold(m,binary,0,1,CV_THRESH_BINARY); – escapecharacter

+0

您是否使用比例因子? (你可能会发布所有步骤......?)。谢谢 – Tanasis