Module: RImageAnalysisTools::Centroids
- Defined in:
- lib/rimageanalysistools/centroids.rb
Overview
Methods for calculating the geometric centroids of regions in an image
Class Method Summary collapse
-
.calculate_centroids_2d(mask) ⇒ Hash
Calculates the centroid of all 2d regions in a mask.
Class Method Details
.calculate_centroids_2d(mask) ⇒ Hash
Calculates the centroid of all 2d regions in a mask. A region is defined as all pixels having the same nonzero greylevel in an image.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/rimageanalysistools/centroids.rb', line 48 def self.calculate_centroids_2d(mask) centroids = {} counts = {} mask.each do |ic| next unless mask[ic] > 0 unless centroids[mask[ic]] then centroids[mask[ic]]= [0.0,0.0] counts[mask[ic]]= 0 end centroids[mask[ic]][0]+= ic.get(ImageCoordinate::X) centroids[mask[ic]][1]+= ic.get(ImageCoordinate::Y) counts[mask[ic]]+= 1 end centroids.each_key do |k| centroids[k].map! { |e| e/counts[k] } end centroids end |