File Exchange

image thumbnail


version 1.0.5 (7.05 MB) by Said Pertuz
Breast image processing


Updated 02 Sep 2020

From GitHub

View Version History

View license on GitHub

his is a Matlab implementation of different tools for processing digital mammography images developed by Universidad Industrial de Santander. OpenBreast was publicly released in [1] and has been clinically evaluated for the task of breast cancer risk assessment in [2]. The following tasks have been implemented:

* Feature extraction for parenchymal analysis [1]
* Image standardization for (RAW and PROCESSED) digital mammography images
* Breast segmentation and chest wall detection [3]
* Detection of regions on interest within the breast [4,5]
* Breast density segmentation [6]

To get started first run setup.m to configure Openbreast. Then run the following demos:

* demo01 Breast segmentation
* demo02 ST mapping
* demo03 ROI detection
* demo04 Feature extraction on FFDM images
* demo05 Breast density segmentation

For further details, please refer to:

[1] S. Pertuz et al., Open Framework for Mammography-based Breast Cancer Risk Assessment, IEEE-EMBS International Conference on Biomedical and Health Informatics, 2019.

[2] S. Pertuz et al., Clinical evaluation of a fully-automated parenchymal analysis software for breast cancer risk assessment: A pilot study in a Finnish sample,
European Journal of Radiology: 121, 2019.

[3] B. Keller et al., Estimation of breast percent density in raw and processed full field digital mammography images via adaptive fuzzy c-means clustering and support vector machine segmentation, Med. Phys, 2012.

[4] S. Pertuz, C. Julia, D. Puig, A novel mammography image representation framework with application to image registration, Proc. International Conference on Pattern Recognition, 2014.

[5] G. Torres, S. Pertuz, Automatic Detection of the Retroareolar Region in Mammograms, Proc. Latin American Congress on Biomedical Engineering, 2016

[6] G. F. Torres et al., "Morphological Area Gradient: System-independent Dense Tissue Segmentation in Mammography Images," Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC), 2019.

Cite As

Said Pertuz (2021). OpenBreast (, GitHub. Retrieved .

S. Pertuz, G. F. Torres, R. Tamimi, J. Kamarainen, Open Framework for Mammography-based Breast Cancer Risk Assessment, IEEE-EMBS International Conference on Biomedical and Health Informatics, 2019

Comments and Ratings (19)

Said Pertuz

@razwani "fit" is a function for curve fitting and requires the "Curve Fitting Toolbox"


Hi Sir. I try run demo01 but then the error has occur

"Check for missing argument or incorrect argument data type in call to function 'fit'.

Error in ffdmForeground>getLower (line 68)
f = fit(xi(select), n(select), 'gauss1');"

Can I know what is the function fit?

Mclean Kumwenda

Can you please share the training dataset (mammographics images)

Hazwani Mohmad Ramli

I had run ffdmforeground.m code but the error appear at line % find mask:
mask0 = (im>=max(xth, 0));

Error : Matrix dimensions must agree.

What should I do?

Christia Eleftheriou

Τhe problem comes from the images I use. I do not think it will work with these samples.
Do you know if I could find more compatible samples somewhere?
Thank you so much for your time!!

Said Pertuz

Hi @Cristina, it seems that the information about pixel size is missing in your DICOM files. In this case, before line 14 in the demo, you can manually add info.psize = 0.1; which is a typical pixel size in digital mammographic systems (100 um/pixel).

Christia Eleftheriou

In fact I am able to display the source image but I receive the same error.
It appears that info.psize = NaN .

Said Pertuz

Hi @Christia, this could be due to an issue in source image. What format is your source image? Is it DICOM? If so, please try the following:

info = getinfo(path_to_dicom);
im = ffdmRead(path_to_dicom, info);

You should be able to visualize you source image without issues. If you get an error then that could be a cue about what the problem is.

Christia Eleftheriou

The program works perfectly fine with the sample but when i use other images i get this error :

Array indices must be positive integers or logical values.

Error in matlab.images.internal.resize.contributions (line 50)
indices = aux(mod(indices-1,length(aux)) + 1);

Error in imresize (line 166)
[weights{k}, indices{k}] = matlab.images.internal.resize.contributions( ...

Error in demo01 (line 14)
im = imresize(im, info.psize/0.4);

Can you help me please??
Thank you in advance!!

Shivaani Mariapun

Hi, It's working now. I missed out the Wavelet toolbox previously. Thank you for your helpful reply.

Said Pertuz

Hi, @shivaani, what is the error message you are receiving? Beware that the following toolboxes are required: Signal Processing, Image Processing, Statistics and Machine Learning, and Wavelet.

Shivaani Mariapun

Hi, I am getting the following error message when I try to run demo04. Error in xfeatures (line 98)
f4 = features_GLSM(im, flist4, mask);. What could be the possible reasons for this please? Thank you.

Santiago Benitez

Said Pertuz

@abuajela Did you run demo05? Is the image you are using FFDM?

Abuajela Ghumedh

I had tested the tool for precentage of breast density i got all results are zero. how I can solve this problem.

Nicole Hernández

Said Pertuz

Hi asmaa_BD, this tool is has not been tested in digitized images -like those in the miniMIAS dataset. However, could you send the image and detailed instructions on how to reproduce your error?

asmaa BD

hello sir, ive tried you method of features extraction on the mini_MIAS databse and in normal image i get this error
In an assignment A(:) = B, the number of elements in A and B must be the same.

Error in features_GLHA (line 27)
f(n) = min(x);

Error in xfeatures (line 86)
f1 = features_GLHA(im, flist1, mask);

Error in mytestonthismethod (line 68)
x = xfeatures(im1, features, J);
can you help please?

MATLAB Release Compatibility
Created with R2019a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!