How to replace image pixels

I have an image and a csv file. I want to change the pixel value of the image to the values in the csv file. How do I do that?

1 Comment

Load the image, load the csv file, index into the image and replace values. Write the image to file again if desired.

Sign in to comment.

Answers (1)

Try this if your data is stored row, column, new gray level:
data = csvread(filename); % Assumes columns of row, column, new gray level, NOT x, y, new gray level
rows = data(:, 1);
columns = data(:, 2);
newValues = data(:, 3);
for k = 1 : length(rows)
grayImage(rows(k), columns(k)) = newValues(k); % Replace this pixel of grayImage with a new value.
end
If your data is in the form x, y, gray level, you need to do this:
data = csvread(filename); % Assumes columns of x, y, new gray level, NOT row, column, new gray level
rows = data(:, 2);
columns = data(:, 1);
newValues = data(:, 3);
for k = 1 : length(rows)
grayImage(rows(k), columns(k)) = newValues(k); % Replace this pixel of grayImage with a new value.
end

Categories

Find more on Convert Image Type in Help Center and File Exchange

Asked:

on 5 Aug 2019

Answered:

on 5 Aug 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!