Extracting sum of intensity values at various locations with various diameters
2 ビュー (過去 30 日間)
古いコメントを表示
Hello. I have an image (grayscale) of spots, that have a spread of intensities and sizes.
I have the centroid location of each spot and an "size" of each spot obtained by my own encircled energy calculation for both x&y directions.
data =
8.35 8.14 43.00 2266.00
10.76 8.24 43.00 2362.00
8.96 11.07 43.00 2459.00
8.55 7.98 43.00 2555.00
where
col 1 is the size of my object in y
col 2 is the size in x
col 3 is the x centroid location
col 4 is the y centroid location
What I am trying to achieve is at each x,y centroid location, draw a circle with a diameter given by the average of the size in x & size in y, and then caluclate the integrated intensity in the circle. The circles (representing the size) may be different for each spot.
As a second request, I would also like to then consider a distance d, say 15 pixels from the x,y centroid location and obtain the background values from a square or circle that I can call background to then subtract from the integrated signal requested above to get the background subtracted integrated signal.
Thanks for any help Jason
0 件のコメント
採用された回答
Image Analyst
2017 年 12 月 13 日
See the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_create_a_circle.3F to create a circle mask at each centroid.
You can locate the centroids by using thresholding and regionprops()
binaryImage = grayImage > someThreshold;
props = regionprops(binaryImage, grayImage, 'Centroid', 'BoundingBox', 'MeanIntensity', 'Area');
centroids = [props.Centroid];
xCentroids = centroids(1:2:end);
yCentroids = centroids(2:2:end);
allAreas = [props.Area];
allMeanIntensities = [props.MeanIntensity];
integratedGrayValue = allAreas .* allMeanIntensities
Place a circle at each centroid using the FAQ to create a binary image, then use the code above.
To get the overall background intensity you can use the thresholded image
binaryImage = grayImage > someThreshold.
meanBackgroundIntensity = mean(grayImage(~binaryImage));
If you want a background intensity closer to each spot, then it's more complicated - you'll have to make a binary image mask that is a ring shape around each spot.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Image Data Workflows についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!