There are formulas, and basic version is fairly simple.
You know coordinates of the pixel, and its color. Coordinates are numbers, color is also numbers: three numbers per pixel, i.e. the intensity of Reg, Green and Blue.
You can make a math function mapping any coordinate to color:
https://wiki.tum.de/display/lfdv/Super-Resolution#Super-Resolution-ClassicalApproaches
Then you put a new grid of new pixels over that image, and read the color at each new pixel.
Or a really simple example. You want to display 720 image on a 1080 screen.
Note that 720/1080 = 2/3.
Take first pixel from 720 image. It is the corner, so we make first pixel of 1080 screen the same color. Let’s assume that color is completely black (0% white).
The next pixel in 720 is 100% white. It is 1/720 to the other end of the screen.
The next pixel in 1080 is 1/1080 to the other end of thescreen, i.e. it is between first and second pixel of 720 image. But it is also closer to to the second pixel: 1/1080 = 1/720 * (0.6667) + 0*0.3333.
1/720 and 0 are positions of first and second pixels, and 0.6667 and 0.3333 are their “weights”, or distances of to the second 1080 pixel.
So with linear interpolation, color of second pixel in 1080 should use same weights on colors of 720 pixels. 100%*0.6667 + 0%*0.3333 = 66.67% white, i.e. darker shade of gray.
Latest Answers