필터 지우기
필터 지우기

How can I select a folder to save a set of images to?

조회 수: 9 (최근 30일)
Nathan Costin
Nathan Costin 2016년 7월 29일
편집: Stephen23 2016년 7월 29일
I have been able to plot the centroids to a set of images and have been able to save them using a fixed filepath. I would now like a window to open up so a user could select which folder they would like to save the images to (there are 240 images so would like to categorise them). Is there a way I could alter my code to do this?
bac_pics = tiffread('bacvid.tif'); %imports the tif file
prompt_folder = 'Select a file to save the images to';
prompt_file_name = 'What would you like the image file to be called? ';
[~,locName] = fileparts(input(prompt_file_name),'s')); %saves the name of the image as dictated by the user
for i = 1:numel(bac_pics) %sets up a loop to run for every frame in the video
bac_frame = bac_pics(i).data; %for each loop the fram is named bac_frame
dimensions = size(bac_frame); %finds the sizes of the image
log_filt = fspecial('log'); %creates a filter in the form of a Lorentzian of a Gaussian
bac_frame_filt = imfilter(bac_frame, log_filt); %puts the filter over the image
bw_bac = im2bw(bac_frame_filt , graythresh(bac_frame)); %the image is converted into a bianry image using a limit obatined from a function that uses Otsu's Method
eroder = strel('line', 1, 90); %creates a circular structring element to erode the image later with radius 1
bw_bac_eroded = imopen(bw_bac, eroder); %gets rid of the connecting parts of bacteria
imshow(bac_frame)
baccenter = regionprops(bw_bac_eroded, 'Centroid');%finds the center of each cell
centroids = cat(1, baccenter.Centroid);
centroiddata = regionprops('table', bw_bac_eroded, 'Centroid');
hold on
plot(centroids(:,1),centroids(:,2), 'b*')
hold off
locPath2 = 'C:\Users\nathan\Documents\MATLAB\Tables and Pictures'; %dictates saving location
locFull2 = fullfile(locPath2,[locName, [num2str(i),'.jpg']]);
saveas(gcf,locFull2)
end

채택된 답변

Stephen23
Stephen23 2016년 7월 29일
편집: Stephen23 2016년 7월 29일
Or perhaps uiputfile. Or whatever suits your task needs: go to the bottom of any MATLAB help page and you will find links to similar functions. Use them!
Oh, and always use fullfile to generate the full file name from a file path and file name:
[FileName,PathName] = uiputfile(...)
filepath = fullfile(PathName,FileName)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Import, Export, and Conversion에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by