分享本身作的一个开源的图片标注控件

简介

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

效果预览

能够在个人项目主页预览效果图,这里图片大小有限制,压缩了效果很差。 也能够直接clone下整个项目运行sample查看效果。github

添加到你的项目

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

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
复制代码

第二步 添加依赖maven

dependencies {
    implementation 'com.github.SirLYC:ImageLabelView:{latest version}'
}
复制代码

在代码中使用

你能够先查看样例 sample codeide

第一步 添加到你的布局布局

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

相似于ImageView的CenterInside表现。Bitmap能够为空,可是会清空以前的全部标签。gradle

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

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

  • PREVIEW
    这是默认模式。每当你设置一个新的bitmap时都会改变到这个模式。在这个模式下,你能够移动或放大缩小图片。
  • DRAW
    在这个模式能够画框。好比矩形框,对角就是你按下和抬起时的位置。手指抬起后,会选中这个框进入SELECT模式。
  • UPDATE
    在这个模式能够改变框的大小或者位置。能够拖动一个角或者一条边改变大小,或者按到一个标签中央移动它。
  • SELECT
    在这个模式下能够经过点击或长按选中一个标签。标签选中后能够用以下代码获取:
label.selectingLabel()
复制代码

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

Step4: 导出数据

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

待完成/修复

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

感谢你们的支持!再次贴上项目地址

github.com/SirLYC/Imag…

相关文章
相关标签/搜索