A microarray image is segmented into discreet segments for respective
spots in the microarray image based on locating microarray image rows and
columns by maximizing scores associated with vertical and horizontal
image projections. To determine the locations of the rows and columns
that extend through artifacts that involve multiple spots and/or multiple
columns and rows, the scores may also include contributions from the gaps
between adjacent rows and columns. The scores are calculated by stepping
windows containing nominally spaced spot-sized row or column boundaries,
over the horizontal projection curves. At each step a total row or column
score is calculated that represents the areas of the projection curves
that fall within the row boundaries. The system then selects the window
positions that correspond to the maximum total row score and total column
score, and uses the locations of the boundaries as the locations of row
and column "stripes" that are sized to the spot diameters. The
intersections of the row and column stripes define the segments for the
respective spots, and the centers of the intersections are the locations
for the spot location, or grid, markers. The system may also determine
the best spot size, column and row gap sizes and sub-array gap sizes by
changing the boundaries accordingly and determining corresponding maximum
scores.