我是第一次使用openCV。我正在使用openCV3和XCode对其进行编码。我想创建一个16位灰度图像,但我想要定义的数据是4000是白色的像素值,0是黑色的像素值。我在int类型的数组中有这些像素的信息。如何创建Mat并将数组中的值分配给Mat?
答案 0 :(得分:0)
您可以使用
创建Matcv::Mat m(rows, cols, CV_16UC1);
但据我所知,没有办法为“白色”定义自定义值,你必须将 m 与 std :: numeric_limits :: max / 4000 <相乘/ em>的。但是,仅在显示图像时才需要这样做。
查找表可以做同样的事情(可能更慢),请参阅cv :: LUT。但是,它显然只支持8位图像。
编辑:好的,我错过了关于分配现有数组值的部分;看到berak的回答。我希望答案仍然有用。