Images that describe the real world are naturally continuous functions that lose significant amount of information when transferring to the discrete digital world. Therefore, the ability to perform various actions on the digital image is required in order to complete missing information, improve the quality of the digital image, and preserve its natural appearance and properties. The classic method that is still used today in a wide variety of applications is interpolation. In the project we present a new method for interpolation using neural networks. The method uses a neural network to estimate the continuous function that describes each image. The input for the network is each of the pixels coordinates while the output is the color value of the image for each pixel. The network is trained with the information held in the original image, which is a discrete function value for each pixel. Additionally, by adjusting the network architecture, using a blurring kernel that simulates the operation of the camera and with specified cost regulation methods we are able to achieve high quality results that describes the image continuously.
Given an image, we divide it into patches, for each patch, we train a neural network that describes it continuously. For each lattice of coordinates in which we want the image, we will enter the appropriate coordinates for each patch, connect the patches and get the image after the required interpolation operation.
The method we developed yields higher quality and more stable results for different images compared to the classical interpolation methods. The main advantage of our method is that you can perform operations on images independently of the input image size, the desired output image, and other parameters. Thus, the method is not constrained to a single application or goal and can be applied in various fields where interpolation is used.