说实话单纯看书学习 OpenCV 太枯燥了,看完基本就都忘光。所以,我决定一边看书,一边把通用的图像处理、识别功能做成在线服务。 首先就遇到了技术选型的问题,这里记录一下。
目标
这套后台可以同时支撑 web 网页、微信小程序、APP。
后台选型
在 golang 与 python 的方案之间纠结,但是最后还是选择了 python。原因:
- opencv 官方文档基本都是 python 和 c++ 的,第一次学习 opencv 就用 golang 有点冒险
- python 做图像识别的网上资料相对多很多。我看的几本 opencv 书籍也都是用 python 来讲解的
至于 python 的后台框架,我在 flask 与 fastapi 间,选择了 fastapi。 一是我对 flask 历史印象不好,不展开说了;二是,我非常想尝试一下 fastapi 这个号称性能可以匹敌 go 的框架, 再就是 python3 的异步写法也没玩过,值得一试。
前端
我有点不想碰之前的代码:
- PHP Laravel 版本有点旧,也不想花时间升级
- Golang 的模板太难用了,非常不适合写网页
- 两套代码分离,本地调试麻烦
干脆就基于 fastapi 的模板来实现吧。我唯一担心的是国际化的支持。
https://github.com/PhraseApp-Blog/fastapi-i18n
查了一下,简单粗暴,看起来不是问题。
vue 还是 react
用于 web,小程序,app 都用同一套后台,所以前端还是要用 js 来实现图片上传及其他交互。 在 vue 与 react 之间,选择了 vue,主要是 jsx 我觉得对 SEO 不友好,对 SEO 不友好, 网页端就失去了存在的价值。
至于 vue2 还是 vue3,我还是不太想尝试 vue3,因为 vue2 完全满足我的需求。 这次主要是学习 opencv,我觉得不值得在激进的前端技术上再花更多的时间。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式