Macroscopic Specimen image Sectioning
31 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(2 个)
Image Analyst
2024-8-1,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
2024-8-9,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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!