OpenCV:cvLoadImage将16位图像打开为8位

jpr*_*mvi 5 opencv image

我试图用OpenCV 2.1处理16位单通道未压缩TIFF图像,但是当我调用cvLoadImage时,显然它们被转换为8位:

IplImage* img = cvLoadImage("myImage.tif",
      CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);

std::cout << img->depth << std::endl;
Run Code Online (Sandbox Code Playgroud)

版画

8
Run Code Online (Sandbox Code Playgroud)

这些图像是由荧光扫描仪生成的,只能生成这种图像,我已经用商业软件包证实它们确实是16位的.

如何打开这些图像并使用原始位深度?

twe*_*ter 5

在OpenCV中加载python中的tif图像(例如16位)应该可以输入:

im = cv.LoadImageM("test.tif",cv.CV_LOAD_IMAGE_UNCHANGED)
Run Code Online (Sandbox Code Playgroud)


Utk*_*nha 0

嗯...您可以编写自己的代码来加载图像。它是未压缩的 TIFF,所以应该不会有太大麻烦。