mirror of
https://github.com/c-sooyoung/fold_slice.git
synced 2026-09-17 20:39:08 +09:00
initial commit
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
%% UDPATE_MASK
|
||||
% This small script guides you to update an alread existing mask for
|
||||
% ptychography. The main tool for creating a new mask is
|
||||
% beamline.create_mask, a GUI that lets you select bad/hot pixels.
|
||||
% UPDATE_MASK loads the data, specified by file_path, plots it and starts
|
||||
% the GUI. Although you can create a 3D mask, i.e. a mask which varies from
|
||||
% frame to frame, a 2D mask is sufficient for most datasets.
|
||||
|
||||
% You can load an already existing mask within the GUI.
|
||||
|
||||
close all
|
||||
|
||||
|
||||
file_path = '~/Data10/eiger_4/S00000-00999/S00089/run_00089_000000000000.h5';
|
||||
single_file = true; % if you have multiple files use * in file_path
|
||||
H5Location = '/entry/data/eiger_4/'; % check the location within the h5 file in ptycho/+detector
|
||||
orientation = [1 0 0]; % check the detector orientation in ptycho/+detector
|
||||
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% load the data
|
||||
|
||||
image_read_args = [];
|
||||
|
||||
image_read_args{1} = 'Orientation';
|
||||
image_read_args{2} = orientation;
|
||||
image_read_args{3} = 'OrientByExtension';
|
||||
image_read_args{4} = false;
|
||||
|
||||
if ~single_file
|
||||
image_read_args{end+1} = 'IsFmask';
|
||||
image_read_args{end+1} = 1;
|
||||
end
|
||||
|
||||
if ~isempty(H5Location)
|
||||
image_read_args{end+1} = 'H5Location';
|
||||
image_read_args{end+1} = H5Location;
|
||||
end
|
||||
|
||||
|
||||
data = io.image_read(file_path, image_read_args(:));
|
||||
|
||||
%% plot the data
|
||||
figure(1),
|
||||
plotting.imagesc3D(abs(log10(double(data.data)+1)));
|
||||
colorbar
|
||||
axis xy equal tight
|
||||
colorbar
|
||||
title('Detector raw data')
|
||||
colormap jet
|
||||
|
||||
%% iterative step for a mask update (add dead pixels to the current mask)
|
||||
mask = beamline.create_mask;
|
||||
|
||||
%% check it again
|
||||
figure (2),
|
||||
imagesc(mask); axis equal tight xy
|
||||
title('Final mask')
|
||||
|
||||
%*-----------------------------------------------------------------------*
|
||||
%| |
|
||||
%| Except where otherwise noted, this work is licensed under a |
|
||||
%| Creative Commons Attribution-NonCommercial-ShareAlike 4.0 |
|
||||
%| International (CC BY-NC-SA 4.0) license. |
|
||||
%| |
|
||||
%| Copyright (c) 2018 by Paul Scherrer Institute (http://www.psi.ch) |
|
||||
%| |
|
||||
%| Author: CXS group, PSI |
|
||||
%*-----------------------------------------------------------------------*
|
||||
% You may use this code with the following provisions:
|
||||
%
|
||||
% If the code is fully or partially redistributed, or rewritten in another
|
||||
% computing language this notice should be included in the redistribution.
|
||||
%
|
||||
% If this code, or subfunctions or parts of it, is used for research in a
|
||||
% publication or if it is fully or partially rewritten for another
|
||||
% computing language the authors and institution should be acknowledged
|
||||
% in written form in the publication: “Data processing was carried out
|
||||
% using the “cSAXS matlab package” developed by the CXS group,
|
||||
% Paul Scherrer Institut, Switzerland.”
|
||||
% Variations on the latter text can be incorporated upon discussion with
|
||||
% the CXS group if needed to more specifically reflect the use of the package
|
||||
% for the published work.
|
||||
%
|
||||
% A publication that focuses on describing features, or parameters, that
|
||||
% are already existing in the code should be first discussed with the
|
||||
% authors.
|
||||
%
|
||||
% This code and subroutines are part of a continuous development, they
|
||||
% are provided “as they are” without guarantees or liability on part
|
||||
% of PSI or the authors. It is the user responsibility to ensure its
|
||||
% proper use and the correctness of the results.
|
||||
|
||||
Reference in New Issue
Block a user