Thanks to visit codestin.com
Credit goes to github.com

Skip to content

netbeifeng/ARKanji

Repository files navigation

ARKanji

License: MIT

Introduction

As a serious AR-game for Japanese or Chinese learners. There are a bunch of Kanji-Markers scattered on the table. Try different Kanji-combinations to find the meaningful words!

Here is the table of supported kanjis in the demo, you can also find it in meta.json.

Marker Flower Fire Sun Book Electricity Car
UTF8 E88AB1 E781AB E697A5 E69CAC E99BBB E8BB8A
Meaning Flower Fire Sun Book Electricity Car
Onyomi ニチ・ジツ ホン デン シャ
Kunyomi はな ひ・ほ ひ・か もと いなずま くるま

Pipeline

Pipeline

Demo

Warning: The tangos in meta.json doesn't cover all possible combinations of given monjis. For instance, you may notice that 「日」(sun) and 「本」(book) can be combined as ()(ほん) 」(Japan) or (ほん)(じつ) 」(Today), also 「花」(Flower) and 「火」(Fire) can form (はな)() 」(Firework) or ()(ばな) 」(Sparkle). In this demo we only consider 「花火」 and 「日本」, the reaason for that it's hard to find some free models to represent sparkle and toady. If you want to get more possible 「単語」(tango) combinations, just edit the meta.json and make sure the corresponding model file also avaliable in model folder.

Here are all possible combinations (tangos) presented on the screen. Red line indicates that two Kanjis are not fit with each other, green on the contrary.

All combination lines Only combinable lines
All Markers On Screen Only Possible

There is also a OpenCV window for monitoring the marker tracking status for sake of debugging. OpenGL with OpenCV window

Meaningful Combination Unmeaningful Combination
Screenshot Possible Not Possible
単語(Tango) 電車 本電
Rotated Marker Normally placed Marker
Screenshot Possible Not Possible
単語(Tango) 日本 花火

Dependencies

  • OpenCV Vision Library
  • GLEW OpenGL API
  • GLFW API for creating OpenGL-Context and window
  • JsonCpp JSON Parser
  • Tesseract Optical Character Recognition Library
  • Leptonica Image support for Tesseract
  • FTGL Font rendering in OpenGL-Context
  • SOIL2 For loading 2D textures
  • assimp For loading 3D models

It's recommendable to use vcpkg to manage the libraries, which is a package manager tool just like the pip for Python, maven for Java or npm for JavaScript. It's really convenient to use it to make our lives easier from building a bunch of related dependencies and so on.

Before Building: Dont forget to change the path to your vcpkg in CmakeLists.txt at Line 4.

Structure

.
├── etc
├── model
├── font
├── shader
├── jpn_tess
├── meta.json
├── build
├── CMakeLists.txt
├── Main.cpp
├── MetaManager.h
├── Model.h
├── Tracker.h
├── ...
└── README.md

You may check that model, font, shader, jpn_tess and meta.json are under the directory, they are necessary rescource files for starting the demo. You can use this document to print markers.

License

MIT License

Copyright (c) 2022 Chang Luo

About

A serious AR-game for Japanese Kanji learner. (OpenCV + OpenGL)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published