A method of processing an input image, said method comprising: inputting said input image into a pixel array producing pixel output signals having luminance intensity values; executing an image edge detection routine on said pixel output signals, said image edge detection routine detecting pixels defining an image edge; grouping said edge defining pixels into groups based on luminance intensity values of said edge defining pixels and further categorising said groups into a predetermined plurality of regions; using said grouping to define a non-linear transform function operation over a range of luminance intensity values of said pixel array; applying said non-linear transform function to luminance intensity values of said edge defining pixels capturing said input image; and applying the edge defining pixels having the applied non-linear transform function to replace said edge defining pixels from said input image; wherein the act of defining said non-linear transform function comprises: assigning a contrast enhancement value to each of said predetermined plurality of regions; normalizing each of said assigned contrast enhancement values; generating a transform function for each of said normalized contrast enhancement values by assigning a first region of said predetermined plurality of regions a first predetermined value and assigning a last region of said predetermined plurality of regions a second predetermined value, said first and second predetermined values being different; and extrapolating said non-linear transform function from said transform function. inputting said input image into a pixel array producing pixel output signals having luminance intensity values; executing an image edge detection routine on said pixel output signals, said image edge detection routine detecting pixels defining an image edge; grouping said edge defining pixels into groups based on luminance intensity values of said edge defining pixels and further categorising said groups into a predetermined plurality of regions; using said grouping to define a non-linear transform function operation over a range of luminance intensity values of said pixel array; applying said non-linear transform function to luminance intensity values of said edge defining pixels capturing said input image; and applying the edge defining pixels having the applied non-linear transform function to replace said edge defining pixels from said input image; wherein the act of defining said non-linear transform function comprises: assigning a contrast enhancement value to each of said predetermined plurality of regions; normalizing each of said assigned contrast enhancement values; generating a transform function for each of said normalized contrast enhancement values by assigning a first region of said predetermined plurality of regions a first predetermined value and assigning a last region of said predetermined plurality of regions a second predetermined value, said first and second predetermined values being different; and extrapolating said non-linear transform function from said transform function. assigning a contrast enhancement value to each of said predetermined plurality of regions; normalizing each of said assigned contrast enhancement values; generating a transform function for each of said normalized contrast enhancement values by assigning a first region of said predetermined plurality of regions a first predetermined value and assigning a last region of said predetermined plurality of regions a second predetermined value, said first and second predetermined values being different; and extrapolating said non-linear transform function from said transform function.