A MATLAB-based GUI for handwriting analysis, allowing users to upload handwriting images, apply multiple feature extraction scripts, and classify handwriting styles (print, cursive, etc.).
✅ Baseline Consistency Analysis
✅ Slant Angle Detection
✅ Letter Spacing Measurement
✅ Stroke Continuity Evaluation
✅ Expandable with Custom Scripts
- Open GitHub Desktop.
- Go to File → Clone Repository.
- Select "URL" and enter:
https://github.com/zayedrmdn/Handwriting-Feature-Extraction.git
- Choose a folder to store the project.
- Click "Clone" and wait for the process to finish.
https://github.com/zayedrmdn/Handwriting-Feature-Extraction.git
📁 Handwriting-Feature-Extraction
│── 📂 src/ # MATLAB feature extraction scripts
│── 📂 test_images/ # Sample handwriting images
│── 📄 main_gui.mlapp # MATLAB App Designer GUI
│── 📄 README.md # Documentation
│── 📄 log.txt # Log file for analysis results
- Ensure MATLAB is installed.
- Install the Image Processing Toolbox.
- Open MATLAB.
- Navigate to the cloned folder:
cd 'C:\path\to\Handwriting-Feature-Extraction'
- Run the GUI:
main_gui
- Usage:
- Upload a handwriting image.
- Select a handwriting style.
- Pick up to 3 features.
- Click "Run Analysis".
- Place it inside the
/src/
folder. - Ensure the function name matches the script filename.
📌 Example (example_detection.m):
function result = example_detection(imagePath)
% Load image
img = imread(imagePath);
% Perform some analysis (Example: Count black pixels)
blackPixels = sum(img(:) == 0);
% Return structured results
result = struct('BlackPixelCount', blackPixels, 'Type', 'Custom Analysis');
end
Modify RunAnalysisButtonPushed.m
inside main_gui.mlapp
.
➡️ Step 1: Update the script list
Find the scriptMap
definition and update it like this:
📌 Before adding the new script:
scriptMap = containers.Map( ...
{'Baseline Detection', 'Slant Detection', 'Letter Spacing', 'Stroke Continuity'}, ...
{@baseline_detection, @slant_detection, @space_detection, @stroke_detection} ...
);
📌 After adding example_detection.m:
scriptMap = containers.Map( ...
{'Baseline Detection', 'Slant Detection', 'Letter Spacing', 'Stroke Continuity', 'Example Detection'}, ...
{@baseline_detection, @slant_detection, @space_detection, @stroke_detection, @example_detection} ...
);
➡️ Step 2: Update Dropdown List
Inside createComponents(), update the dropdown menu:
app.SelectFeature1DropDown.Items = {'Baseline Detection', 'Slant Detection', 'Letter Spacing', 'Stroke Continuity', 'Custom Feature'};
- Open GitHub Desktop.
- Click Branch → New Branch.
- Name your branch (e.g., feature-name) and click Create Branch.
- Make changes in MATLAB.
- Open GitHub Desktop.
- Under Changes, enter a commit message.
- Click Commit to [your-branch-name].
- Click Push origin to upload your changes.
- Open GitHub and create a Pull Request.