OpenCV adalah perpustakaan sumber terbuka yang dapat digunakan untuk pemrosesan gambar, visi komputer, pembelajaran engine, dll. OpenCV 4 dapat dengan mudah diintegrasikan ke Android melalui Gradle menggunakan com.quickbirdstudios:opencvdependensi. Itu tidak memerlukan perangkat Android NDK.
Tutorial ini memberikan langkah demi langkah cara mengatur OpenCV 4 di proyek Android.
- Buka Android Studio dan mulai proyek baru.
- Pilih aktivitas kosong.
- Berikan nama aplikasi, nama paket dan lokasi di mana proyek harus disimpan. Pilih bahasa Java atau Kotlin.
- Buka file modul build.gradledan tambahkan ketergantungan OpenCV 4 di bagian dependencies.
app/build.gradle
dependencies { // Other dependencies // ... implementation 'com.quickbirdstudios:opencv:4.3.0' }
- Buka file XML tata letak dan tambahkan ImageView.
app/src/main/res/layout/activity_main.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<RelativeLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.MainActivity”>
<ImageView
android:id=”@+id/myImageView”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</RelativeLayout>
- Copy gambar uji ke app/src/main/res/drawabledirektori.
- Di MainActivitykelas inisialisasi OpenCV dengan OpenCVLoader.
- Gunakan metode Utils.loadResource()untuk memuat sumber daya. Kami menggunakan orange.pnggambar untuk pengujian. Itu disimpan dalam drawabledirektori.
- Android Bitmapmenggunakan saluran warna RGB. Secara default, OpenCV Matmenggunakan saluran warna BGR. Gunakan metode Imgproc.cvtColoruntuk mengonversi saluran warna.
- Inisialisasi bitmap dengan lebar dan tinggi yang ditentukan menggunakan metode Bitmap.createBitmap(). Konfigurasi ARGB_8888mendefinisikan bahwa setiap saluran (RGB dan alfa) disimpan dengan presisi 8 bit.
- Gunakan metode Utils.matToBitmap()untuk mengonversi OpenCV Matke Android Bitmap.
- Untuk menampilkan gambar di ImageViewgunakan metode setImageBitmap().
app/src/main/java/com/example/app/MainActivity.kt
package com.example.app import android.graphics.Bitmap import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import kotlinx.android.synthetic.main.activity_main.* import org.opencv.android.OpenCVLoader import org.opencv.android.Utils import org.opencv.imgproc.Imgproc class MainActivity : AppCompatActivity() { companion object { init { if (OpenCVLoader.initDebug()) { Log.d("MY_APP", "OpenCV loaded") } } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val mat = Utils.loadResource(this, R.drawable.orange) Imgproc.cvtColor(mat, mat, Imgproc.COLOR_BGR2RGB) val bitmap = Bitmap.createBitmap(mat.cols(), mat.rows(), Bitmap.Config.ARGB_8888) Utils.matToBitmap(mat, bitmap) myImageView.setImageBitmap(bitmap) } }