An integrated circuit for a hyperspectral imaging system, the integrated circuit comprising: - an array of optical sensors, each optical sensor comprising at least one pixel; and - an array of optical filters each configured to pass a band of wavelengths onto one or more of the optical sensors, the array of optical filters being directly postprocessed on the array of optical sensors by CMOS compatible fabrication steps, including deposition, patterning and etching, wherein filters along a row in the array have the same wavelength selectivity for each optical sensor in the row; and - read out circuitry to read out pixel values from the array of sensors to represent an image; wherein different ones of the optical filters being configured to have a different thickness, to pass different bands of wavelengths by means of interference, to allow detection of a spectrum of wavelengths, and locations of the different ones of the optical filters being arranged such that along a line of different filters spanning across the array of optical filters, the thickness is arranged to vary so as to increase at some points and decrease at other points along the line; and wherein the locations are arranged to provide a cluster of adjacent optical filters having different thicknesses to enable detection over a first spectral range, and to provide a neighbouring cluster having different thicknesses to enable detection over a second spectral range such that the first and second spectral ranges overlap, wherein the read out circuitry has a wavelength selector for selecting between or interpolating between read out signals of corresponding pixels of different optical filters within each cluster to tune the output to a particular wavelength. - an array of optical sensors, each optical sensor comprising at least one pixel; and - an array of optical filters each configured to pass a band of wavelengths onto one or more of the optical sensors, the array of optical filters being directly postprocessed on the array of optical sensors by CMOS compatible fabrication steps, including deposition, patterning and etching, wherein filters along a row in the array have the same wavelength selectivity for each optical sensor in the row; and - read out circuitry to read out pixel values from the array of sensors to represent an image; wherein different ones of the optical filters being configured to have a different thickness, to pass different bands of wavelengths by means of interference, to allow detection of a spectrum of wavelengths, and locations of the different ones of the optical filters being arranged such that along a line of different filters spanning across the array of optical filters, the thickness is arranged to vary so as to increase at some points and decrease at other points along the line; and wherein the locations are arranged to provide a cluster of adjacent optical filters having different thicknesses to enable detection over a first spectral range, and to provide a neighbouring cluster having different thicknesses to enable detection over a second spectral range such that the first and second spectral ranges overlap, wherein the read out circuitry has a wavelength selector for selecting between or interpolating between read out signals of corresponding pixels of different optical filters within each cluster to tune the output to a particular wavelength.