Macroscopic Specimen image Sectioning
3 views (last 30 days)
Show older comments
Hi everyone,
Would I be able to make an image similar to this in MATLAB?

0 Comments
Answers (2)
Image Analyst
on 1 Aug 2024
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
on 9 Aug 2024
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 Comments
See Also
Categories
Find more on Image Processing and Computer Vision in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!