A method for machine-based processing a dithered image comprising a grid of pixels, the method comprising: defining a plurality of arrays within the grid of pixels by applying a sliding window function to the dithered image, wherein each array comprises a plurality of pixels corresponding to a different sub-region of the image; analysing each array to identify whether its corresponding sub-region is dithered, the step of analysing each array comprises: performing edge detection along the rows and the columns of the array; counting the number of edges detected along the rows of the array to determine the number of horizontal edges in the array; counting the number of edges detected along the columns of the array to determine the number of vertical edges in the array; identifying whether the sub-region is dithered (704,705) based on the number of horizontal and vertical edges in the array; and selectively processing the image by applying a dither removal process to each dithered sub-region of the image, the method characterized in that the step of analysing each array further comprises: determining, for each sub-region identified to being dithered, the average edge length of the corresponding array; and setting a parameter of the dither removal process for controlling the level of dither removal to a value based on the determined average edge length. defining a plurality of arrays within the grid of pixels by applying a sliding window function to the dithered image, wherein each array comprises a plurality of pixels corresponding to a different sub-region of the image; analysing each array to identify whether its corresponding sub-region is dithered, the step of analysing each array comprises: performing edge detection along the rows and the columns of the array; counting the number of edges detected along the rows of the array to determine the number of horizontal edges in the array; counting the number of edges detected along the columns of the array to determine the number of vertical edges in the array; identifying whether the sub-region is dithered (704,705) based on the number of horizontal and vertical edges in the array; and selectively processing the image by applying a dither removal process to each dithered sub-region of the image, the method characterized in that the step of analysing each array further comprises: determining, for each sub-region identified to being dithered, the average edge length of the corresponding array; and setting a parameter of the dither removal process for controlling the level of dither removal to a value based on the determined average edge length. performing edge detection along the rows and the columns of the array; counting the number of edges detected along the rows of the array to determine the number of horizontal edges in the array; counting the number of edges detected along the columns of the array to determine the number of vertical edges in the array; identifying whether the sub-region is dithered (704,705) based on the number of horizontal and vertical edges in the array; and selectively processing the image by applying a dither removal process to each dithered sub-region of the image, the method characterized in that the step of analysing each array further comprises: determining, for each sub-region identified to being dithered, the average edge length of the corresponding array; and setting a parameter of the dither removal process for controlling the level of dither removal to a value based on the determined average edge length.