We aim to study the set of color sets of continuous regions of an image given as a matrix of m rows over columns where each element in the matrix is an integer from named a color. The set of distinct colors in a region is called fingerprint. We aim to compute, index and query the fingerprints of all rectangular regions named rectangles. The set of all such fingerprints is denoted by . A rectangle is maximal if it is not contained in a greater rectangle with the same fingerprint. The set of all locations of maximal rectangles is denoted by . We first explain how to determine all the maximal locations with their fingerprints in expected time using a Monte Carlo algorithm (with polynomially small probability of error) or within deterministic time. We then show how to build a data structure which occupies space such that a query which asks for all the maximal locations with a given fingerprint f can be answered in time , where k is the number of maximal locations with fingerprint f. If the query asks only for the presence of the fingerprint, then the space usage becomes while the query time becomes . We eventually consider the special case of squared regions (squares).