Macroscopic Specimen image Sectioning
31 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jen
el 1 de Ag. de 2024 a las 15:22
Respondida: Image Analyst
el 9 de Ag. de 2024 a las 20:01
Hi everyone,
Would I be able to make an image similar to this in MATLAB?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1745036/image.png)
0 comentarios
Respuestas (2)
Image Analyst
el 1 de Ag. de 2024 a las 17:13
Yes. What are you starting with?
If you have any more questions, then attach your data and code to read it in with the paperclip icon after you read this:
Image Analyst
el 9 de Ag. de 2024 a las 20:01
It's a generic, general purpose demo of how to threshold an image to find blobs, and then measure things about the blobs, and extract certain blobs based on their areas or diameters.
Also see some attached demos on fitting data to distributions (formulas). Adapt them to fit a log normal distribution. Then I don't know what criteria they used to pick the threshold. Perhaps it was something like down a certain percentage from the peak of the fitted distribution. Or you could think of your own criteria. Maybe a triangle threshold would be fine. I'm attaching a function for that too.
I'm not sure what you want to do. In your original question you just seemed to say you wanted to stitch images side by side in a horizontal row. But then some images are also pseudocolored, and some have contours overlaid on them.
Why don't you start your code by writing comments. Each comment would essentially say what you need to do. With enough of these you essentially have pseudocode, like
% Construct file name.
% Read in image.
% Threshold image.
% Create binary image mask.
% Fill Holes.
% Take largest blob.
% Measure blob's properties such as Area and brightness.
% Export results to Excel.
% and so on.
and then you can just follow up comment with the MATLAB code to do that task,like
% Construct file name.
baseFileName = 'slice1.png';
fullFileName = fullfile(pwd, baseFileName);
% Read in image.
rgbImage = imread(fullFileName);
grayImage = rgb2gray(rgbImage);
% Threshold image.
threshold = 129;
% Create binary image mask.
mask = grayImage > 129;
% Fill Holes.
mask = imfill(mask, 'holes');
% Take largest blob.
mask = bwareafilt(mask, 1);
% Measure blob's properties such as Area and brightness.
props = regionprops(mask, grayImage, 'Area', 'MeanIntensity')
allAreas = [props.Area];
allIntensities = [props.MeanIntensity];
% Export results to Excel.
data = [allAreas(:), allIntensities(:)];
writeMatrix(data, 'My Results.xlsx');
% and so on.
0 comentarios
Ver también
Categorías
Más información sobre Image Processing Toolbox en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!