我正在尝试在matlab中使用名为metamorph的成像软件实现颜色组合功能。我有三个uint16位文件(R,G和B)。我需要将它们转换为12位然后将它们组合成RGB图像.metamorph将16位文件转换为12位,然后从三个12位文件创建RGB图像。我的代码如下。我不太清楚如何将16位图像文件转换为12位位。
C1 = imread('metamorph/R.tif',3);
C2 = imread('metamorph/G.tif',3);
C3 = imread('metamorph/B.tif',3);
R=mat2gray(C1);
G=mat2gray(C2);
B=mat2gray(C3);
rgb1=cat(3,R,G,B);
imshow(rgb1)
非常感谢任何帮助。
由于
答案 0 :(得分:1)
我认为MATLAB不具有12位的数据类型(每个像素的每种颜色为1.5个字节)。当然,您可以扩展双倍数据以适应12位整数:
rgb12= round(rgb1/max(rgb1(:))*(2^12-1)); %# scale & round image values to 12 bit
......但真正的问题是这样做有什么好处:
imwrite
显然可以做12bit JPEG,但我不确定每种颜色是12位。