最近指北君在做一些图像处理的工作,主要是使用到了OpenCV。可能有的小伙伴听过OpenCV,OpenCV是通过C++开发的,官方只提供了C++、Python、JS 等版本的API。Java 使用OpenCV 原生的库,比较麻烦,需要配置一些环境变量。指北君在GitHub上找了一圈,终于找到了一个Java版本的项目 -- JavaCV ,JavaCV 直接把OpenCV给嵌入到内部,不再需要其他的环境变量的支持。JavaCV另外包含了FFmpeg、Tesseract等一系列的音视频相关的库。今天指北君就要带大家一起使用 JavaCV 将一张图片转换成一副字符画。
准备工作
我们需要引入 JavaCV的依赖库
另外,我们还需要准备一个图片
接下来我们就可以着手写代码了。
先使用opencv读取图片
由于图片的宽高太大,做字符画不太好, 所以需要进行缩放。
接下来,我们需要把图片转化成灰度图片
我们来看下,灰度图片是怎么样的
通过获取灰度图片,每个点位的bgr颜色,然后根据颜色值转换成对应的字符,拼接形成一个完整的字符画。
好了,我们这次制作字符画就结束了。完整的代码如下:
总结
今天指北君给大家展示了如何使用JavaCV制作一幅字符画。JavaCV可以做到事情还有很多很多,后面将持续更新。