For citation please use:
@software{fracture-suite, author = {Leon Bohmann}, title = {fracsuite v1}, data = 2024-03, version = {1.0.0}, doi = {10.5281/zenodo.10758208}, url = {https://github.com/leonbohmann/fracture-suite/tree/masterrelease} }
How it works
:warning: This is deprecated. The documentation will be updated in the future!
Several steps are necessary to analyze a fracture scan:
- Cropping of input image (optional)
- Analyze the image and find the biggest rectangular shape
- Perspective transform the image, so that the rectangle is filling the extents
- Preprocessing
- Gaussian Blur + (optional) Resize of the input image
- Adaptive Threshold
- Contour detection
- Find all contours on the preprocessed image
- Filter Contours, remove all:
- Whose perimeter is too small
- Whose area is way too large (25000px²)
- Create stencil with the found contours
- This helps to quickly remove all contours that lie within a bigger contour
- Draw all contours onto a new image (resulting image will display the cracks)
- Skeletonization #1
- Skeletonize the stencil to minimize the crack width to 1px wide lines
- Use Erode/Dilate (closing kernel) to connect gaps in contours (this will widen the 1px wide lines)
- Skeletonization #2
- Skeletonize the image again to retrieve the crack middle lines
- (enabled by default) Remove splinters, whose are is all black in the original image and fill those spaces
- Contour detection #2
- Now with minimal fuzziness, run the splinter detection again
- Create splinters from resulting contour list
A couple of outputs are saved to a directory next to the input image. These are:
- Contour plot of recognized splinters (you have to zoom in, contour thickness is 1px)
- Filled plot of splinters
- Figures
- Splinter size distribution
- Splinter relative share distribution
- Voronoi overview
- Fracture Intensity overlay
Installation
pip install fracsuite
Usage (:warning: 0.1.7 only!)
Use the module directly
py -m fracsuite.splinters "path/to/image"
For details see: API Docs
Create a script
from fracsuite.splinters.analyzer import Analyzer, AnalyzerConfig
image = r"Path/to/some/image.bmp"
config = AnalyzerConfig()
# size of cropped image (if cropping is needed)
config.cropsize = (4000,4000)
analyzer = Analyzer(image, config)
Metadata
Release files for fracsuite 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fracsuite-1.1.0.tar.gz | 216.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fracsuite-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 457.1 kB
Release files / fracsuite-1.1.0.tar.gz
| Download URL | fracsuite-1.1.0.tar.gz |
|---|---|
| Size | 216.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
73d8a70a81791d6d5a3099c87a137a9c9ab5c994ffa8fc6aeaab2530b880705a
|
|
BLAKE2b-256 checksum How to use checksums |
da49c7892eeca096e31653c4725f89b21813aa6c0f807d6bf388b588d5b066ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|
Release files / fracsuite-1.1.0-py3-none-any.whl
| Download URL | fracsuite-1.1.0-py3-none-any.whl |
|---|---|
| Size | 240.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06597735ba97026cc24c5e19b66f7d074ed19e7b3ad0ec1e25a866472454449e
|
|
BLAKE2b-256 checksum How to use checksums |
4d17534fea553a3b2d7a48eae1c2f09f8290ee207ed5430d40ff3b89bf3db6c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|