- Read the image using imread
- Save the matrix as a text file using writematrix
How to write the pixel values of a graylevel image into a text file?
조회 수: 5 (최근 30일)
이전 댓글 표시
I would like to read a grayscale image and write that pixel values into a text file
댓글 수: 3
답변 (2개)
ILoveMATLAB
2022년 6월 15일
- Read the image using imread
- Save the matrix as a text file using writematrix
댓글 수: 0
Image Analyst
2022년 6월 15일
See attached demo. It writes out the coordinate and RGB values or gray levels to a CSV file.
댓글 수: 3
Image Analyst
2022년 7월 11일
The demo does that. Here, I 've made it less general so that it handles only gray scale, not both gray scale and RGB:
% Demo by Image Analyst
% Initialization Steps.
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 20;
% Read in gray scale image.
fullFileName = 'cameraman.tif';
grayScaleImage = imread(fullFileName);
[rows, columns, numberOfColorChannels] = size(grayScaleImage)
if numberOfColorChannels > 1
warningMessage = 'This is not a gray scale image.';
uiwait(errordlg(warningMessage))
end
[x, y] = meshgrid(1:columns, 1:rows);
% Extract the individual gray levels.
% Need to cast to double or else x and y will be clipped to 255 when we concatenate them.
% Get array listing [grayLevel, x, y]. Using (:) will turn all the 2-D arrays into column vectors.
output = [grayScaleImage(:), x(:), y(:)];
% Get the output filename - same as input file name but with .csv extension.
[folder, baseFileNameNoExtension, extension] = fileparts(fullFileName);
baseFileName = [baseFileNameNoExtension, '.csv'];
% folder = pwd; % Change to current folder.
outputFileName = fullfile(folder, baseFileName);
% Write output to CSV file.
message = sprintf('Please wait...\n Writing data to CSV file:\n %s', outputFileName);
fprintf('%s\n', message);
csvwrite(outputFileName, output);
% Let user know we're done.
fprintf('Done!\n Wrote data to CSV file:\n %s\n', outputFileName);
% Open up
promptMessage = sprintf('Done!\n\nWrote data to CSV file:\n%s\n\nDo you want me to it now?', outputFileName);
titleBarCaption = 'Open?';
buttonText = questdlg(promptMessage, titleBarCaption, 'Yes - open it', 'No, do not open it', 'Yes - open it');
if contains(buttonText, 'No,')
return;
end
winopen(outputFileName);
참고 항목
카테고리
Help Center 및 File Exchange에서 Convert Image Type에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!