I am a newbie in Matlab and got some troubles on handling image. This work inspired from the previous post on Stackoverflow forum: question link. I tried to search the best solution to solve my problem and finally found the answer.
As a Matlab newbie, the below codes help me alot!
This is especially when I am trying to execute hundreds of image processing algorithms and need to save all the result without displaying any output on the pop up window.
% Input image img = imread('c:/images/testImage.jpg'); % Define the figure position f = figure('Position', [100 100 100 100]); % Do not display the output image set(f, 'visible', 'off'); % Scales image data to the full range of the current colormap imagesc(img); % "hold on" retains the current graph and adds another graph to it hold on; %# define points (in matrix coordinates) p1 = [10,100]; p2 = [100,20]; %# Plot the points. %# Note that depending on the definition of the points, %# You may have to swap x and y %# Draw diagonal lines across the image %# In my case, I change the below loop with other image processing algorithm for i = 1:5 plot([p1(2)*i,p2(2)*i],[p1(1)*i,p2(1)*i],'Color','r','LineWidth',2) % Output file path resultImagePath = sprintf('c:/images/resultImage_%d.jpg', i); % Save output images saveas(f, resultImagePath, 'jpg'); % See the difference when you execute the below code %imwrite(img, resultImagePath, 'jpg'); end % "hold off" resets hold state to the default behavior hold off; % Close the "do-not-display function" close(f);
Input and output images:
The Real Output of my experiment: