簡(jiǎn)介
什么是圖片標(biāo)注唱凯?眾所周知,機(jī)器學(xué)習(xí)是需要數(shù)據(jù)支撐的睛低,比如你想讓機(jī)器認(rèn)識(shí)圖片中的貓案狠,就得把很多已經(jīng)有答案的圖給這個(gè)機(jī)器看服傍,就像我們看例題一樣。而圖片標(biāo)注就是給圖片這個(gè)例題加上答案骂铁。比如我們要框出圖片中貓吹零,最后把坐標(biāo)以及原圖打包作為一個(gè)學(xué)習(xí)樣本,就可以給模型食用啦拉庵。
這款控件就完成的這樣的一件事灿椅,支持對(duì)圖片進(jìn)行畫框、調(diào)整钞支、貼上標(biāo)簽等茫蛹,并且框不局限于矩形,可以擴(kuò)展烁挟。
效果預(yù)覽
可以在我的項(xiàng)目主頁(yè)預(yù)覽效果圖婴洼,這里圖片大小有限制,壓縮了效果不好信夫。
也可以直接clone下整個(gè)項(xiàng)目運(yùn)行sample查看效果窃蹋。
添加到你的項(xiàng)目
第一步 在你的根項(xiàng)目的build.gradle中repositories末尾添加:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
第二步 添加依賴
dependencies {
implementation 'com.github.SirLYC:ImageLabelView:{latest version}'
}
在代碼中使用
你可以先查看樣例 sample code
第一步 添加到你的布局
第二步 把一張圖片設(shè)置進(jìn)去(通過(guò)bitmap形式)
類似于ImageView的CenterInside表現(xiàn)。Bitmap可以為空静稻,但是會(huì)清空之前的所有標(biāo)簽。
val bitmap: Bitmap? = ... // download or read from disk
label.setBitmap(bitmap);
第三步 在4種模式下完成工作
- PREVIEW
這是默認(rèn)模式匈辱。每當(dāng)你設(shè)置一個(gè)新的bitmap時(shí)都會(huì)改變到這個(gè)模式振湾。在這個(gè)模式下,你可以移動(dòng)或放大縮小圖片亡脸。 - DRAW
在這個(gè)模式可以畫框押搪。比如矩形框,對(duì)角就是你按下和抬起時(shí)的位置浅碾。手指抬起后大州,會(huì)選中這個(gè)框進(jìn)入SELECT模式。 - UPDATE
在這個(gè)模式可以改變框的大小或者位置垂谢∠没可以拖動(dòng)一個(gè)角或者一條邊改變大小,或者按到一個(gè)標(biāo)簽中央移動(dòng)它滥朱。 - SELECT
在這個(gè)模式下可以通過(guò)點(diǎn)擊或長(zhǎng)按選中一個(gè)標(biāo)簽根暑。標(biāo)簽選中后可以用如下代碼獲取:
label.selectingLabel()
這個(gè)模式一般用于處理messaege屬性的輸入或者刪除它徙邻。
Step4: 導(dǎo)出數(shù)據(jù)
拿到Label的引用后直接調(diào)用它的 getData() 方法和 message 屬性獲取信息排嫌。
待完成/修復(fù)
- [ ] 配置信息改變時(shí)會(huì)丟失狀態(tài)
- [ ] 圓形的框
- [ ] 三角形的框
- [ ] 其他多邊形...