如何将16位深度图像(png格式)转换为32位图像?

时间:2015-05-05 15:47:16

标签: python opencv tracking depth

在阈值处理后,我有一个人手的深度图像。我想恢复一些几何特征如轮廓,凸壳等,但所有这些功能都适用于8或32位图像,所以我需要转换。我在python工作!

我尝试过使用一些开放的cv函数

img32 = np.array(thresh, dtype=np.float32) # This line only change the type, not values
img32 *= 65536 # Now we get the good values in 32 bit format
print img.dtype

但我总是16张图片。

1 个答案:

答案 0 :(得分:0)

我不相信PNG支持浮点数据,所以我不确定您希望输出的格式是什么?

如果原始的32位浮点RGB是可以的,你可以使用安装在大多数Linux发行版上的ImageMagick,并且可以随时用于OS X和Windows。命令是

convert input.png -depth 32 -define quantum:format=floating-point rgb:out.rgb

例如,如果您创建一个像这样的1x1白色图像

convert -size 1x1 xc:white -depth 32 -define quantum:format=floating-point rgb:out.rgb

你得到一个像这样的12字节图像

xxd out.rgb
0000000: 0000 803f 0000 803f 0000 803f

如果你创建一个像这样的1x1黑色图像

convert -size 1x1 xc:black -depth 32 -define quantum:format=floating-point rgb:out.rgb

你得到一个像这样的12字节图像

xxd out.rgb
0000000: 0000 0000 0000 0000 0000 0000