I'm trying to do research on how accurate people can draw on a touch screen device. I'm wondering when your finger touches the screen, there should be a range of points touched by your finger instead of one (as it should be tow surfaces next to each other) . So my question is how does Android (or IOS) decide which of these points should be the one that is considered to be touched by OS?
They use subpixel interpolation to decide the peak. The data collected by the controller looks like this 
In the above figure, the finger touched sensor x0,x1 and x2 on rows and y0,y1 and y2 on columns. If you see the figure above, the true peak should lie between x1 and x2 for rows and y1 and y2 for columns. Therefore you can fit these 3 readings for rows in a Parabola and find out the maximum of a Parabola using this formula

Here r(i-1) will be x0, r(i) will be x1 and r(i+1) will be x2. using this formula the controller can correctly determine the peak location of the finger touch. However different controllers use different formulas for interpolation. Some use Center of Mass and some use Gaussian, but the basic concept is the same.
Thanks
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With