练字录像

学习了几天OpenCV以后, 我终于可以在练毛笔字时方便地录像了. 我这种Nerd, 练个毛笔字也要搞得像全栈开发的样子.

兴_原本_small.2020-06-09 15_00_43

就我学习手术的经验, 肌肉记忆的学习, 要提高得快, 一定要看自己的动作录像, 知道自己到底做了什么. 所以某日突然想起来应该在练字时也录像才对. 开始时, 用手机固定在支架上, 但拍摄手和拍摄字总是难以兼得. 而且固定起来麻烦.

镇纸支架

于是用两个木头镇纸和3D打印机做了个相机的支架.

支架的水平部分是一个梯形的外框, 里面做出一个镂空方块, 大约是两寸大楷的样子(边长85cm). 做成梯形, 是因为在相机里拍摄出来的恰好成为一个方形的外框, 方便裁剪.

IMG_20200526_165047

连接相机的部分用的是1/4英寸螺丝固定的快拆座, 方便拆卸.

在梯形外框内侧, 还做出了环绕的45度斜面, 然后在斜面上贴了两圈LED灯带. 这样灯光是环绕照在纸面上, 相当于无影灯了, 向下倾斜又不至于太晃眼.

塑料部分用木螺丝拧在镇纸上. 这镇纸花20块买的, 居然是实木, 直接拧木螺丝根本拧不上, 没办法只好动用了电钻.

将几个绿色的圆形贴纸贴在镂空方块的四角, 作为定位标记.

写字时, 发现还是从左上45度拍摄最为清晰, 因为汉字除了勾、趯, 很少有手向左上长距离移动的动作, 从左上拍摄不容易出现手挡住笔尖的问题.

软件部分

左侧的带有手的视频, 仅仅是简单的剪切, 利用OpenCV里的ROI选择, 就可以方便使用一个矩形, 把需要的部分裁剪出来.

这一部分在OpenCV C++学习笔记(2): Mat数据结构里面记录过.

右侧的部分比较复杂些, 首先要用颜色识别找到写字区的4个角落. 同一颜色的多个物体识别、定位方法, 记录在了OpenCV C++学习笔记(6): 颜色识别定位.

找到4角的定位点以后, 将其映射到一个摆正方块的四个角上, 使用的方法记录在OpenCV C++学习笔记(4): 4点投影变换.

最后, 我懒得每次打开两个文件, 于是把两部分拼在一起, 做成一个视频文件. 也还是用的OpenCV C++学习笔记(2): Mat数据结构中记录的技巧. 就大功告成了.

兴_原本_small.2020-06-09 15_00_43