我有一个由双精度nRow矩阵构成的nCol,我想通过像素的nRow灰度图像转换为nCol。我不想将这个缩减到一个缩放到256个通道的图像。我会很高兴使用单打而不是双打。我已经浏览了Mathworks的Tiff类文档,但找不到一个简单的例子。将双精度矩阵转换为灰度.tif图像
0
A
回答
1
我试着阅读关于Tiff类,并且它是非常差的记录。但我发现这个经历试错:
可以说,我们有矩阵
data = rand(100,200);
让我们将它保存为TIFF:
t = Tiff('new.tif','w') %create object of Tiff class
setTag(t,Tiff.TagID.ImageLength,size(data,1)) %define image dimentions
setTag(t,Tiff.TagID.ImageWidth,size(data,2))
setTag(t,'Photometric', Tiff.Photometric.MinIsBlack) %define the color type of image
%specifies how image data components are stored on disk
setTag(t,'PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);
setTag(t,'BitsPerSample',64); %because 1 double = 8byte = 64bits
%Specify how to interpret each pixel sample (IEEEFP works with input doubles)
setTag(t,'SampleFormat',Tiff.SampleFormat.IEEEFP);
t.write(data)
t.close
让测试这个现在:
datac = imread('new.tif')
whos datac
Name Size Bytes Class Attributes
datac 100x200 160000 double
和:
datac(:,1)
ans =
0.4921
0.6908
0.1544
0.4433
...
+0
感谢您 - 实际上我做了类似的事情,但是当试图在Windows中打开'.tif'时,我收到一个错误,指出文件已损坏。但是,我可以在Matlab中打开图像。任何想法为什么Windows看到一个损坏的文件? – Trojanian
+0
首先,我在考虑'RowsPerStrip'属性,因为它的值不正确。但修复这个值并没有帮助! 我认为问题在于Windows无法识别tiff与双打!另外,由于TIFF总是3D矩阵,所以创建2D TIFF可能是不正确的... –
相关问题
- 1. C#将2D双精度数组转换为灰度图像
- 2. 将文本文件中的矩阵转换为灰度图像
- 3. 将图像转换为灰度图像
- 4. Matlab从图像转换为双精度
- 5. 如何在MATLAB中将灰度矩阵转换为RGB矩阵?
- 6. 将双精度矩阵保存为图像
- 7. 将图像转换为灰度
- 8. jQuery将图像转换为灰度?
- 9. 将简单图像转换为灰度
- 10. 将灰度图像转换为黑白
- 11. 将灰度图像转换为彩色
- 12. 将图像转换为灰度指针
- 13. 无法将双精度转换为双精度
- 14. 八度图像包无法将图像转换为灰度
- 15. 如何将灰度图像转换为n×3阵列
- 16. 将时间转换为双精度
- 17. 将双精度转换为QString
- 18. 如何将DBNULL转换为双精度?
- 19. 将字符串转换为双精度,
- 20. DirectShow - 将IGraphBuilder *转换为双精度(C++)
- 21. 将双精度转换为浮点数
- 22. 将文本转换为双精度
- 23. 将字符串转换为双精度
- 24. C#,将Npoi.ICell转换为双精度型
- 25. Fortran:将双精度复数转换为单精度
- 26. 转换为灰度图像到RGB
- 27. 转换灰度图像为RGB
- 28. 将短阵列转换为双精度数组
- 29. 如何将灰度图像转换为RGB图像?
- 30. 使用matplotlib将灰度图像转换为RGB热图像
矩阵的值是多少?因为二维矩阵已经是灰度。彩色图像有很多尺寸。 只要试试'imshow(yourmatrix)' –
这不是我所追求的。 – Trojanian
然后显示一些例子。 –