Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Workflow-specific calculations, plot choices, summaries, and exports stay in the
| --- | --- |
| Electrochemistry | Gamry DTA review, chrono overlays, CIC, CSC, VT resistance, and EIS export workflows |
| DIC | Image registration, paired crop preparation, ROI masks, Ncorr strain overlays, and summary export |
| Image measurement | Interactive curve tracing, calibrated scale/length measurement, curvature/radius measurement, and microscope focus stacking |
| Image measurement | Interactive curve tracing, calibrated scale/length measurement, curvature/radius measurement, microscope focus stacking, and fixed-size batch image cropping |
| Wearable biosignals | ECG preview, filtering, peak detection, segments, templates, and SNR-style measurements |
| Reusable foundation | Layered MATLAB UI foundation plus DTA and biosignal facades for app-facing workflows |
| Validation | Focused MATLAB build tasks, architecture guardrails, synthetic fixtures, and GitHub Actions CI |
Expand All @@ -48,6 +48,7 @@ labkit_DICPostprocess_app
% Image measurement
labkit_CurvatureMeasurement_app
labkit_FocusStack_app
labkit_BatchImageCrop_app

% Wearable biosignal
labkit_ECGPrint_app
Expand All @@ -68,6 +69,7 @@ Then use the app window to load files, inspect plots or results, and export outp
| `labkit_DICPostprocess_app` | active | Ncorr strain overlay, ROI summary, and colorbar export | Ncorr MAT, reference image, mask | EXX/EYY overlays, summary CSV, colorbar/level table |
| `labkit_CurvatureMeasurement_app` | experimental | Editable image-curve circle fit, calibrated real-unit scale-bar placement, and curve length measurement | Image | Overlay PNG and curvature/length CSV |
| `labkit_FocusStack_app` | experimental | Microscope focus-stack fusion into one all-in-focus image | Focus image folder or selected image files | Fused PNG, focus map PNG, summary CSV |
| `labkit_BatchImageCrop_app` | experimental | Batch fixed-size microscope image crops with per-image crop center and rotation | Microscope image files | Cropped images and crop manifest CSV |
| `labkit_ECGPrint_app` | experimental | ECG waveform preview, ROI filtering, peak/segment SNR, and SNR-over-time display | MAT timetable or CSV/TSV table | Segment SNR CSV and waveform PNG |

Status labels:
Expand Down
22 changes: 22 additions & 0 deletions apps/image_measurement/batch_crop/batchImageCropWorkflow.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
function varargout = batchImageCropWorkflow(command, varargin)
%BATCHIMAGECROPWORKFLOW Dispatch app-owned batch crop helpers.
% Expected caller: batch-crop app tests and migration-time workflow checks.
% Inputs are a workflow command plus command-specific arguments. Outputs match
% the selected app-private helper. Export commands have file side effects.

switch string(command)
case "cropImage"
varargout{1} = batchCropImage(varargin{1}, varargin{2});
case "buildBatchCropManifest"
varargout{1} = buildBatchCropManifest(varargin{1});
case "selectedBatchCropImagePaths"
varargout{1} = selectedBatchCropImagePaths(varargin{1}, varargin{2});
case "writeBatchCropOutputs"
varargout{1} = writeBatchCropOutputs(varargin{1}, varargin{2});
case "batchCropImageDialogFilter"
varargout{1} = batchCropImageDialogFilter();
otherwise
error('labkit:BatchImageCrop:UnknownWorkflowCommand', ...
'Unknown batch image crop workflow helper command: %s.', command);
end
end
Loading
Loading