时间:2016。

地点:武汉。

技能点:C++,Qt编程,Opencv,基本的加密算法。

周期:3个多星期,Part-time。

 

这次是受人所托,帮助做一个软件。

先介绍一下这个软件的背景:骨科医生在给病人做手术时,往往需要植入一些人工器件。如何确定这些人工器件的大小尺寸时一个关键问题。一般的方法是在拍X片的时候放置一个球形标记物。通过这个标记物,可以通X光图像推算大小,但是仍然不是很方便。这个软件就是要解决这个问题。

 

这个软件需要完成以下的功能:

  1. 自动检测标记物的位置和大小,从而推算图像像素与实际尺寸的比率。
  2. 交互式的通过鼠标测量距离,角度。
  3. 载入人工器件的模型,通过鼠标移动旋转模型,从而方便医生在图像上将X片与人工器件直接比对。
  4. 软件需要授权访问功能。
  5. 软件打包一次安装。

 

这些功能虽然不是很难,但是很多东西需要我去思考具体的技术方案,以及了解技术细节。

具体的,我的技术思路和工作总结如下:

  1. 选择QT来实现软件界面。
  2. 用Opencv来辅助实现标记物的检测。
  3. 用QT canvas 来实现交互式测量,以及模版的移动旋转。
  4. 将随机数和电脑的mac地址信息作为密钥,用对称加密算法实现软件客户端的授权访问。
  5. 使用 NSIS (Nullsoft Scriptable Install System)来打包软件和安装。

 

之所以说这一个项目是最认真的,就是因为这个项目都是按照别人的需求,每一个客户觉得不好用的地方我都进行了修改完善了。虽然按照别人的需求来写软件,会感到非常憋屈和不爽,但是最终的结果却是很好的,这个软件可以算是我写的完成度,友善度最好的一个了。哈哈

 

具体的软件截图如下:

软件的安装

 

客户端首次启动的授权访问控制

 

授权服务软件

 

标记物的自动识别

 

模版匹配

 

交互式测量