SYSTEM AND METHOD FOR VIRTUAL KEYBOARD GENERATION
A method for virtual keyboard generation which is applied to an electronic device with a touch screen is provided in this disclosure. The method detects the touch points on the touch screen and draws shapes of the coverage of the touch points, and then identifies a palm shape and corresponding finger touch points in the shapes according to a preset butterfly-type shape. Finally the method generates a palm virtual keyboard according to the palm shape and the finger touch points, and displays the palm virtual keyboard at a position horizontally aligned with the palm shape. A palm virtual keyboard generation system is also provided.
1 . A method for virtual keyboard generation, applied to an electronic device with a touch screen, comprising:
detecting touch points on the touch screen and drawing shapes of a coverage of the touch points;
identifying a palm shape and corresponding finger touch points in the shapes according to a preset butterfly-type palm shape; and
generating a palm virtual keyboard according to the palm shape and the finger touch points and displaying the palm virtual keyboard at a position horizontally aligned with the palm shape.
2 . The method as claimed in claim 1 , wherein the identifying step further comprises:
comparing the shapes of the coverage of the touch points with the preset butterfly-type palm shape to determine whether the shapes of the coverage of the touch points is the palm shape according to whether a approximately value for the comparison is larger than a threshold; and
identifying the finger touch points according to the palm shape, positions of the touch points around the palm shape and distances between the positions.
3 . The method as claimed in claim 1 , wherein the step of displaying the virtual palm keyboard further comprises:
setting a horizontal position of the palm virtual keyboard according to a horizontal line of the palm shape;
setting keys positions of the palm virtual keyboard according to the horizontal position of the palm virtual keyboard and positions of the finger touch points; and
generating the palm virtual keyboard according to the horizontal position of the palm virtual keyboard and the keys positions of the palm virtual keyboard.
4 . The method as claimed in claim 3 , wherein the step of setting the horizontal position of the palm virtual keyboard further comprises:
setting a connecting line of lower wave peaks of the palm shape as a horizontal line and setting a synthetic vector line according to two lines outward from the wave troughs over the palm shape; and
generating a preset included angle according to the horizontal line of the palm virtual keyboard and the synthetic vector line to keep a relative horizontal state between the palm virtual keyboard and the palm shape.
5 . The method as claimed in claim 3 , wherein the step of displaying the virtual palm keyboard further comprises:
determining whether the palm shape moves or rotates;
when the palm shape moves or rotates, correspondingly moving or rotating the palm virtual keyboard according to the position of the palm shape and the preset included angle;
determining whether the positions of the finger touch points change; and
when the positions of the finger touch points change, periodically adjusting or changing the key positions of the palm virtual keyboard according to the positions of the finger touch points.
6 . The method as claimed in claim 1 , wherein the palm virtual keyboard includes a left-palm virtual keyboard and a right-palm virtual keyboard, further comprising:
setting an element of the palm virtual keyboard elements as a reference element for matching the left-palm virtual keyboard with the right-palm virtual keyboard;
calculating Euclidean distances from the reference element of each left-palm virtual keyboard to the reference element of each right-palm virtual keyboard respectively;
classifying the Euclidean distances of the reference element from each left-palm virtual keyboard to the reference element of other right-palm virtual keyboard into a Euclidean distance group;
matching the left-palm virtual keyboard with the right-palm virtual keyboard of the minimum Euclidean distance in the Euclidean distance group.
7 . The method as claimed in claim 6 , wherein the palm virtual keyboard elements comprises the finger touch points, the palm shape and the position of the palm virtual keyboard.
8 . A virtual keyboard generation system applied to an electronic device with a touch screen which has a touch screen, the virtual keyboard generation system comprising:
at least one processor;
a non-transitory storage system coupled to the at least one processor and configured to store one or more programs that are executed by the at least one processor, the one or more programs including instructions for:
detecting touch points on the touch screen and drawing shapes of a coverage of the touch points;
identifying a palm shape and corresponding finger touch points in the shapes according to a preset butterfly-type shape; and
generating a palm virtual keyboard according to the palm shape and the finger touch points and displaying the palm virtual keyboard at a position horizontally aligned with the palm shape.
9 . The system as claimed in claim 8 , wherein the one or more programs further include instructions for:
comparing the shapes of the coverage of the touch points with the preset butterfly-type palm shape to determine whether the shapes of the coverage of the touch points is the palm shape according to whether a approximately value for the comparison is larger than a threshold; and
identifying the finger touch points according to the palm shape, positions of the touch points around the palm shape and distances between the positions.
10 . The system as claimed in claim 8 , wherein the one or more programs further include instructions for:
setting a horizontal position of the palm virtual keyboard according to a horizontal line of the palm shape;
setting keys positions of the palm virtual keyboard according to the horizontal position of the palm virtual keyboard and positions of the finger touch points; and
generating the palm virtual keyboard according to the horizontal position of the palm virtual keyboard and the keys positions of the palm virtual keyboard.
11 . The system as claimed in claim 10 , wherein the one or more programs further include instructions for:
setting a connecting line of lower wave peaks of the palm shape as a horizontal line and setting a synthetic vector line according to two lines outward from the wave troughs over the palm shape; and
generating a preset included angle according to the horizontal line of the palm virtual keyboard and the synthetic vector line to keep a relative horizontal state between the palm virtual keyboard and the palm shape.
12 . The system as claimed in claim 10 , wherein the one or more programs further include instructions for:
determining whether the palm shape is moves or rotates;
when the palm shape moves or rotates, correspondingly moving or rotating the palm virtual keyboard according to the position of the palm shape and the preset included angle;
determining whether the positions of the finger touch points is change; and
when the positions of the finger touch points change, periodically adjusting or changing the key positions of the palm virtual keyboard according to the positions of the finger touch points.
13 . The system as claimed in claim 8 , wherein the palm virtual keyboard includes the left-palm virtual keyboard and the right-palm virtual keyboard, and the one or more programs further include instructions for:
setting an element of the palm virtual keyboard elements as a reference element for matching the left-palm virtual keyboard with the right-palm virtual keyboard;
calculating Euclidean distances from the reference element of each left-palm virtual keyboard to the reference element of each right-palm virtual keyboard respectively;
classifying the Euclidean distances of the reference element from each left-palm virtual keyboard to the reference element of other right-palm virtual keyboard into a Euclidean distance group;
matching the left-palm virtual keyboard with the right-palm virtual keyboard of the minimum Euclidean distance in the Euclidean distance group.
14 . The system as claimed in claim 13 , wherein the palm virtual keyboard elements comprises the finger touch points, the palm shape and the position of the palm virtual keyboard.