Converting .tif file into an .ascii file
22 次查看(过去 30 天)
显示 更早的评论
I have a .tif file that i would like to convert to .ascii . Or a way to be able to convert the .tif file into a numerical matrix where i can convert some values to NaN. I have tried:
Trial 1:
t = Tiff('File_name.tif','r');
imageData = read(t);
imagesc(imageData)
Trial 2:
A = imread('maxlike34_ica_34minerals_step3_2ppd_mostdominant_tiff.tif');
save('myTiff2mat','A');
In both trials when i run a loop to convert any cells that contain a 0 to NaN then none of them change and they all remain as 0, and the .mat files have the dimensions and uint8 which is unlike any data file that i import using .ascii files.
回答(1 个)
Deepak
2024-11-5,8:09
As I understand it, you are attempting to convert a “.tif” image file into a numerical matrix in MATLAB, with the goal of replacing all zero values in matrix with NaN.
To achieve this, we can first read the image using “imread” function in MATLAB to load it into a matrix. Next, we can convert the matrix from its default integer type (uint8) to a floating-point type like “double”, as only floating-point types can represent NaN. Once converted, we can use logical indexing to replace all zero values with NaN. Finally, we can use “dlmwrite” to save the matrix to a text file to convert it to ASCII format.
Here is the MATLAB code to accomplish the same:
imageData = imread('File_name.tif');
% Convert the matrix to double to allow NaN values
imageData = double(imageData);
% Replace zeros with NaN
imageData(imageData == 0) = NaN;
% Save the matrix as an ASCII file
dlmwrite('output_matrix.txt', imageData, 'delimiter', ' ');
save('myTiff2mat.mat', 'imageData');
Please find attached the documentation of functions used for reference:
I hope this helps in resolving the issue.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!