今天逛git无意间发现了一个Qt写的手写输入法,对于手写输入法早就觊觎的我当然不能放过它。

再来几张图镇楼

使用zinnia+qml制作手写输入法_qt

使用zinnia+qml制作手写输入法_qt_02

使用zinnia+qml制作手写输入法_qml_03

接下来就是具体制作的步骤了:

以下是git上readme的原始方法:

  1. Install Zinnia library
  2. Install QML Canvas plugin
  3. Check-out source code and compile: git clone https://github.com/penk/qml-handwriting.git
  4. Download handwriting models, default path is /usr/share/tegaki/models/zinnia/handwriting-zh_TW.model

1.编译安装 Zinnia library(zinnia源码包)

1.解压文件
root@lsy-ubuntu:~/handerwrite# tar -zxvf zinnia-0.06.tar.gz

2.创建target目录
root@lsy-ubuntu:~/handerwrite/zinnia-0.06# mkdir target

3.配置编译选项
root@lsy-ubuntu:~/handerwrite/zinnia-0.06# ./configure --prefix=/root/handerwrite/zinnia-0.06/target/

出现以下信息证明配置成功,生成Makefile
....................................
checking for x86 SSE instructions... configure: creating ./config.status
config.status: creating zinnia.pc
config.status: creating Makefile
config.status: creating Makefile.msvc
config.status: creating swig/version.h
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
root@lsy-ubuntu:~/handerwrite/zinnia-0.06# ls


4.编译
root@lsy-ubuntu:~/handerwrite/zinnia-0.06# make

5.安装
root@lsy-ubuntu:~/handerwrite/zinnia-0.06# make install

安装完成会生成 bin include lib三个目录如下:

root@lsy-ubuntu:~/handerwrite/target# ls
bin  include  lib

 2、3步骤省略。。。

4.编译并安装数据文件:(zinnia识别需要的数据)

1.首先设置下刚才编译的bin路径
root@lsy-ubuntu:~/handerwrite/zinnia-tomoe-0.6# export PATH=/root/handerwrite/target/bin:$PATH

注意:
    如果不设置的话,会报错:checking for a BSD-compatible install... /usr/bin/install -c
                          checking for zinnia_convert... no
                          configure: error: zinnia-convert is not found in your system

2.配置
root@lsy-ubuntu:~/handerwrite/zinnia-tomoe-0.6# ./configure --prefix=/root/handerwrite/target/data

3.编译:
root@lsy-ubuntu:~/handerwrite/zinnia-tomoe-0.6# make

4.安装:
root@lsy-ubuntu:~/handerwrite/zinnia-tomoe-0.6# make install

安装的路径一定要记得哦。

5.修改git上下载的源码:

handwriting.pro文件


unix {
#    CONFIG += link_pkgconfig
#    PKGCONFIG += zinnia
    LIBS += -L /root/handerwrite/target/lib -lzinnia
}

main.cpp文件

data.loadModel(QStringLiteral("/root/handerwrite/target/data/lib/zinnia/model/tomoe/handwriting-zh_CN.model"));

然后就可以编译qt并运行喽。

 

 

后记:

        经过多次测试,识别效率不是很高,识别也不是太精准。以后再慢慢研究吧。