灰度图像创建16位

时间:2015-04-22 07:11:29

标签: c++ opencv image-processing graphics opencv3.0

我是第一次使用openCV。我正在使用openCV3和XCode对其进行编码。我想创建一个16位灰度图像,但我想要定义的数据是4000是白色的像素值,0是黑色的像素值。我在int类型的数组中有这些像素的信息。如何创建Mat并将数组中的值分配给Mat?

1 个答案:

答案 0 :(得分:0)

您可以使用

创建Mat
cv::Mat m(rows, cols, CV_16UC1);

但据我所知,没有办法为“白色”定义自定义值,你必须将 m std :: numeric_limits :: max / 4000 <相乘/ em>的。但是,仅在显示图像时才需要这样做。

查找表可以做同样的事情(可能更慢),请参阅cv :: LUT。但是,它显然只支持8位图像。

编辑:好的,我错过了关于分配现有数组值的部分;看到berak的回答。我希望答案仍然有用。