標(biāo)志位 | 值 | 含義 |
---|---|---|
GC_INIT_WITH_RECT | 0 | 使用提供的矩形初始化狀態(tài)和掩碼。 之后根據(jù)算法進(jìn)行迭代更新 |
GC_INIT_WITH_MASK | 1 | 使用提供的掩碼初始化狀態(tài)。 可以組合使用GC_INIT_WITH_RECT和GC_INIT_WITH_MASK。 然后,使用GC_BGD自動(dòng)初始化ROI之外的所有像素。 |
GC_EVAL | 2 | 表示算法應(yīng)該恢復(fù) |
GC_EVAL_FREEZE_MODEL | 3 | 表示算法僅在固定模型下運(yùn)行g(shù)rabCut算法(單次迭代) |
操作
/**
- 圖像分割 Grabcut
- author: yidong
- 2020/11/21
*/
class GrabcutActivity : AppCompatActivity() {
private val mBinding: ActivityGrabcutBinding by lazy {
ActivityGrabcutBinding.inflate(layoutInflater)
}
private lateinit var mRgb: Mat
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(mBinding.root)
val bgr = Utils.loadResource(this, R.drawable.lena)
mRgb = Mat()
Imgproc.cvtColor(bgr, mRgb, Imgproc.COLOR_BGR2RGB)
mBinding.ivLena.showMat(mRgb)
GlobalScope.launch(Dispatchers.IO) {
doGrabCut()
}
}
private fun doGrabCut() {
val rectMat = Mat()
mRgb.copyTo(rectMat)
val rect = Rect(80, 30, 340, 390)
Imgproc.rectangle(rectMat, rect, Scalar.all(255.0), 2)
GlobalScope.launch(Dispatchers.Main) {
mBinding.ivLena.showMat(rectMat)
}
val bgdModel = Mat.zeros(1, 65, CvType.CV_64FC1)
val fgdModel = Mat.zeros(1, 65, CvType.CV_64FC1)
val mask = Mat.zeros(mRgb.size(), CvType.CV_8UC1)
Imgproc.grabCut(mRgb, mask, rect, bgdModel, fgdModel, 5, Imgproc.GC_INIT_WITH_RECT)
val result = Mat()
for (i in 0 until mask.rows()) {
for (j in 0 until mask.cols()) {
val value = mask.get(i, j)[0].toInt()
if (value == 1 || value == 3) {
mask.put(i, j, 255.0)
} else {
mask.put(i, j, 0.0)
}
}
}
Core.bitwise_and(mRgb, mRgb, result, mask)
GlobalScope.launch(Dispatchers.Main) {
mBinding.ivResult.showMat(result)
}
}
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)Android工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但對于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Android移動(dòng)開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Android開發(fā)知識點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄大綱截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會(huì)持續(xù)更新
如果你覺得這些內(nèi)容對你有幫助,可以添加V獲?。簐ip204888 (備注Android)
總結(jié)
其實(shí)要輕松掌握很簡單,要點(diǎn)就兩個(gè):
- 找到一套好的視頻資料,緊跟大牛梳理好的知識框架進(jìn)行學(xué)習(xí)。
- 多練。 (視頻優(yōu)勢是互動(dòng)感強(qiáng),容易集中注意力)
你不需要是天才,也不需要具備強(qiáng)悍的天賦,只要做到這兩點(diǎn),短期內(nèi)成功的概率是非常高的。
對于很多初中級Android工程師而言,想要提升技能,往往是自己摸索成長,不成體系的學(xué)習(xí)效果低效漫長且無助。下面資料部分截圖是我花費(fèi)幾個(gè)月時(shí)間整理的,誠意滿滿:特別適合有3-5年開發(fā)經(jīng)驗(yàn)的Android程序員們學(xué)習(xí)。
下面資料部分截圖是我花費(fèi)幾個(gè)月時(shí)間整理的,誠意滿滿:特別適合有3-5年開發(fā)經(jīng)驗(yàn)的Android程序員們學(xué)習(xí)。*
[外鏈圖片轉(zhuǎn)存中…(img-fcefbQDh-1711727170735)]文章來源:http://www.zghlxwxcb.cn/news/detail-845255.html
本文已被CODING開源項(xiàng)目:《Android學(xué)習(xí)筆記總結(jié)+移動(dòng)架構(gòu)視頻+大廠面試真題+項(xiàng)目實(shí)戰(zhàn)源碼》收錄文章來源地址http://www.zghlxwxcb.cn/news/detail-845255.html
到了這里,關(guān)于Android OpenCV(四十三),Android程序員面試必備的知識點(diǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!