MATLAB Answers

Tomer
0

How to draw horizontal lines on set of images

Asked by Tomer
on 31 Aug 2019
Latest activity Commented on by Walter Roberson
on 31 Aug 2019
Hi, I am new to MATLAB and need some help. I have 2000 TIF images (located in a folder with names F_001, F_002,.....F_2000) and I want to draw four horizontal lines on all the images. The given coordinates are in image system.
Position of line 1: [x1,x2]=[0,1024] and [y1,y2]=[760,760]. I want to write text "predator location" on top of this line
Position of line 2: [x1,x2]=[0,1024] and [y1,y2]=[500,500]. I want to write text "safe distance" on top of this line.
so are the lines 3 and 4.
How can I do this in a loop using MATLAB. Also, I want to have control over the type of line and the color. Can someone please, help me with this.

  3 Comments

How to apply this using a "for loop" on all the images? The code will be helpful for me.

Sign in to comment.

1 Answer

Answer by KALYAN ACHARJYA on 31 Aug 2019
Edited by KALYAN ACHARJYA on 31 Aug 2019

Images=dir('C:\complate_path\folder_name\*.tif');
outDirectory='C:\complate_path\folder_name_to_save\';
for i=1:length(Images)
ImgName=strcat('C:\complate_path\folder_name\',Images(i).name);
image_test=imread(ImgName);
imshow(image_test);
line([0 760],[1024 760],'linewidth',3);
line([0 500],[1024 500],'r','linewidth',3);
% so are the lines 3 and 4........
fig=gcf
imwrite(fig,strcat(outDirectory,Images(i).name));
end
I want to have control over the type of line and the color. Can someone please, help me with this.
For this read the commnet by @Walter Roberson

  5 Comments

"I want to loop through all the 2000 images in the folder"
I provided the answer
"Is it possible top add some text on top of the line?"
Yes!
result_image=insertText(image,position,text);
See detail here
I don't know much about MATLAB. I used your code and got this error.
Error using imwrite (line 427)
Expected DATA to be one of these types:
numeric, logical
Instead its type was matlab.ui.Figure.
imwrite(result_image, ....)

Sign in to comment.