美文网首页Android开发经验谈Android开发
分享一个自己做的Android图片标注工具

分享一个自己做的Android图片标注工具

作者: 渔船Mr_Liu | 来源:发表于2019-03-30 20:14 被阅读10次

    简介

    什么是图片标注?众所周知,机器学习是需要数据支撑的,比如你想让机器认识图片中的猫,就得把很多已经有答案的图给这个机器看,就像我们看例题一样。而图片标注就是给图片这个例题加上答案。比如我们要框出图片中猫,最后把坐标以及原图打包作为一个学习样本,就可以给模型食用啦。
    这款控件就完成的这样的一件事,支持对图片进行画框、调整、贴上标签等,并且框不局限于矩形,可以扩展。

    效果预览

    可以在我的项目主页预览效果图,这里图片大小有限制,压缩了效果不好。
    也可以直接clone下整个项目运行sample查看效果。

    添加到你的项目

    第一步 在你的根项目的build.gradle中repositories末尾添加:

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
    

    第二步 添加依赖

    dependencies {
        implementation 'com.github.SirLYC:ImageLabelView:{latest version}'
    }
    

    在代码中使用

    你可以先查看样例 sample code

    第一步 添加到你的布局

    第二步 把一张图片设置进去(通过bitmap形式)

    类似于ImageView的CenterInside表现。Bitmap可以为空,但是会清空之前的所有标签。

    val bitmap: Bitmap? = ... // download or read from disk
    label.setBitmap(bitmap);
    

    第三步 在4种模式下完成工作

    • PREVIEW

      这是默认模式。每当你设置一个新的bitmap时都会改变到这个模式。在这个模式下,你可以移动或放大缩小图片。
    • DRAW

      在这个模式可以画框。比如矩形框,对角就是你按下和抬起时的位置。手指抬起后,会选中这个框进入SELECT模式。
    • UPDATE

      在这个模式可以改变框的大小或者位置。可以拖动一个角或者一条边改变大小,或者按到一个标签中央移动它。
    • SELECT

      在这个模式下可以通过点击或长按选中一个标签。标签选中后可以用如下代码获取:
    label.selectingLabel()
    

    这个模式一般用于处理messaege属性的输入或者删除它。

    Step4: 导出数据

    拿到Label的引用后直接调用它的 getData() 方法和 message 属性获取信息。

    待完成/修复

    • [ ] 配置信息改变时会丢失状态
    • [ ] 圆形的框
    • [ ] 三角形的框
    • [ ] 其他多边形...

    感谢大家的支持!再次贴上项目地址

    https://github.com/SirLYC/ImageLabelView

    相关文章

      网友评论

        本文标题:分享一个自己做的Android图片标注工具

        本文链接:https://www.haomeiwen.com/subject/upgsbqtx.html