add vertical lines to an image

25 views (last 30 days)
maryam
maryam on 29 Aug 2013
Commented: Image Analyst on 18 Feb 2018
i've loaded an image and i'd like to add some vertical lines on it,could anybody help me? the image is voltage curve and i need the exact value of the voltage at any time. so i decided to add vertical lines to it,and then by using graph digitizer extract the values.

Accepted Answer

Image Analyst
Image Analyst on 29 Aug 2013
Edited: Image Analyst on 29 Aug 2013
Is it a color image or a grayscale image? Do you want the lines burned into the image, or above it in the overlay?
[rows, columns, numberOfColorChannels] = size(yourImage);
spacing = 50; % Whatever.
for row = 1 : spacing : rows
line([1, columns], [row, row]);
end
for column = 1 : spacing : columns
line([column, column], [1, rows]);
end
If you want them in the overlay, simply use the line() function. If you want it burned into a grayscale image:
grayImage(:, columnNumber) = 255; % White = 255, can pick any intensity.
grayImage(rowNumber, :) = 255;
Same thing for color, just do it in whatever color channels you want. You can also control the color of the line that way.
  3 Comments
Journi Northorp
Journi Northorp on 17 Feb 2018
Can you give me an example please? I have to make vertical lines in white for every other column of a 20x20 matrix.
Image Analyst
Image Analyst on 18 Feb 2018
Try this:
m(:, 2:2:end) = 255;
where m is your matrix.

Sign in to comment.

More Answers (1)

David Sanchez
David Sanchez on 29 Aug 2013
The following draws a vertical line on your_image from pixel (20, 10) to pixel (20, 50):
image(your_image);
hold on
x=[20 20];
y=[10 50];
line(x,y)
hold off

Community Treasure Hunt

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

Start Hunting!