Take 3x3 nearest neighbours round centroids of all spots and find the median of their mean
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jason
el 15 de En. de 2025
Comentada: Matt J
el 11 de Mzo. de 2025
Hello, I have an image (TIFF) that I calculate the centroids and extract the median intensity of all these centroids.
I have the centroid positons in x1,y1 and loop through them the obtin the intensity of each spot and then take the median
Intensity(i)=IM(y1(i),x1(i)); %Centroid intensity
...
medIntensity=median(Intensity(:));

I now want to take a 3x3 nearest neighbours round each of the x1,y1 points and obtain the median of their mean.
Are there any suggestions how I achieve this.
Thanks
Jason
0 comentarios
Respuesta aceptada
Matt J
el 15 de En. de 2025
Editada: Matt J
el 15 de En. de 2025
sz=size(IM);
centroidIdx=sub2ind(sz,y1,x1);
T=combinations(1:3,1:3);
delta=sub2ind(sz,T{:,2},T{:,1})'-(sz(1)+2);
result=median( mean( IM(centroidIdx(:) + delta),2) )
7 comentarios
Matt J
el 11 de Mzo. de 2025
It should work, but be mindfult that your centroids must be deep enough in the interior of the image that the whole of each nxn neighborhood fits within the image boundaries.
IM=rand(24,30);
n=5;
hn=ceil(n/2);
C=combinations(hn:6:height(IM),hn:8:width(IM));
[y1r,x1r]=deal(C{:,1}, C{:,2});
sz=size(IM);
centroidIdx=sub2ind(sz,round(y1r),round(x1r)); %x1r, y1r and not integers so round
T=combinations(1:n,1:n);
delta=sub2ind(sz,T{:,2},T{:,1})'- sub2ind(sz,hn,hn);
result=median( mean(IM(centroidIdx(:) + delta),2) )
Más respuestas (2)
Image Analyst
el 4 de Mzo. de 2025
If you've used regionprops to find the centroids or the spots, then why not simply also ask it for the mean intensities?
props = regionprops(mask, 'Centroid', 'MeanIntensity');
xyCentroids = vertcat(props.Centroid);
meanIntensities = [props.MeanIntensity]
medianMeanIntensity = median(meanIntensities)
10 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




