Skip to content

Instantly share code, notes, and snippets.

View yektasarioglu's full-sized avatar
🤓
Working on some interesting stuff

Yekta Sarioglu yektasarioglu

🤓
Working on some interesting stuff
View GitHub Profile
private fun analyze(frame: MLFrame) {
// Create a task to process the result returned by the image segmentation analyzer.
val task: Task<MLImageSegmentation> = analyzer?.asyncAnalyseFrame(frame)!!
// Asynchronously process the result returned by the image segmentation analyzer.
task.addOnSuccessListener {
// Detection success.
Log.i(TAG, "Success - Result is $it")
configureAfterImage(it.foreground)
}.addOnFailureListener {
@yektasarioglu
yektasarioglu / StaticHumanBodySegmentationFragment.kt
Last active November 30, 2020 11:29
Initializing Analyzer In default mode
private fun initializeAnalyzer() {
analyzer = MLAnalyzerFactory.getInstance().imageSegmentationAnalyzer
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initializeAnalyzer()
binding?.selectImageButton?.setOnClickListener { askImageFromUser() }
binding?.analyzeButton?.setOnClickListener {
analyze(getMLFrame(selectedImageBitmap ?: return@setOnClickListener))
}
}
@yektasarioglu
yektasarioglu / StaticHumanBodySegmentationFragment.kt
Created November 30, 2020 12:03
Releasing Analyzer resources
private fun releaseDetectionResources() {
if (analyzer != null) {
try {
analyzer!!.stop()
} catch (e: IOException) {
Log.e(TAG, "Exception is $e")
}
}
}
@yektasarioglu
yektasarioglu / StreamHumanBodySegmentationFragment.kt
Last active November 30, 2020 19:18
Initialize Analyzer for camera stream mode
private fun initializeAnalyzer() {
val setting = MLImageSegmentationSetting.Factory() // Set whether to support fine segmentation. The value true indicates fine segmentation, and the value false indicates fast segmentation.
.setExact(false)
.setAnalyzerType(MLImageSegmentationSetting.BODY_SEG)
.setScene(MLImageSegmentationScene.FOREGROUND_ONLY)
.create()
analyzer = MLAnalyzerFactory.getInstance().getImageSegmentationAnalyzer(setting)
analyzer?.setTransactor(ImageSegmentAnalyzerTransactor(binding?.graphic ?: return))
}
private fun initializeLensEngine() {
lensEngine = LensEngine.Creator(activity, analyzer)
.setLensType(LensEngine.FRONT_LENS)
.applyDisplayDimension(WIDTH, HEIGHT)
.applyFps(FPS)
.enableAutomaticFocus(true)
.create()
}
override fun onResume() {
super.onResume()
openCameraStream(lensEngine ?: return)
}
override fun onPause() {
super.onPause()
closeCameraStream()
}
@yektasarioglu
yektasarioglu / TextRecognitionViewModel+TextRecognizer.kt
Last active January 5, 2021 08:53
The initialization of static text analyzer
// TextRecognitionViewModel.kt
fun initializeTextAnalyzer(isNetworkConnected: Boolean) {
textRecognizer.initializeTextAnalyzer(isNetworkConnected, TextLanguage.TURKISH)
}
// TextRecognizer.kt
fun initializeTextAnalyzer(isNetworkConnected: Boolean = false, textLanguage: TextLanguage) {
if (isNetworkConnected)
initializeCloudTextAnalyzer(listOf(textLanguage.languageCode))
else
enum class TextLanguage(val languageCode: String) {
ENGLISH("en"),
CHINESE( "cn"),
TURKISH("tr")
}
@yektasarioglu
yektasarioglu / TextRecognitionViewModel+TextRecognizer.kt
Created January 4, 2021 20:57
The initialization of stream text analyzer
// TextRecognitionViewModel.kt
fun initializeStreamAnalyzer(context: Context) {
textRecognizer.initializeStreamAnalyzer(context)
}
// TextRecognizer.kt
fun initializeStreamAnalyzer(context: Context) {
initializeDeviceStreamAnalyzer(context)
}