پیاده سازی کتابخانه OpenCV در اندروید به زبان ساده


پیاده سازی OpenCV در اندروید

کاربرد OpenCV در اندروید چیست؟

به تازگی روی یک پروژه کار میکنم که لازم بود از کتابخانه OpenCV در آن استفاده کنم. به همین منظور در مورد پیاده سازی کتابخانه OpenCV در اندروید تحقیقاتی انجام دادم.

در نهایت سعی کردم که در این مقاله یک راهنمای جمع و جور به منظور آشنایی با کتابخانه OpenCV در اندروید بنویسم.

از این کتابخانه برای پردازش کارهای گرافیکی در اندروید استفاده می شود. برای مثال به کمک این کتابخانه می توانید چهره ی انسان ها یا یک شی خاص را در تصویر شناسایی کنید.

تشخیص و پردازش تصویر با کتابخانه opencv

این کتابخانه کاربردی قابلیت پیاده سازی در اکثر زبان های برنامه نویسی را دارد. در این مقاله، چگونگی اجرای OpenCV در اندروید را در 5 مرحله توضیح می دهیم.

 

مرحله اول : دانلود کتابخانه اندرویدی OpenCv

به سایت OpenCV Android Sourceforge بروید و آخرین نسخه از کتابخانه را دانلود کنید. الان که در حال نوشتن این مقاله هستیم، آخرین ورژن 4.1.2 هست. وقتی دانلود تمام شد، فایل رو extract کنید.

کتابخانه opencv در سایت sourceforge

 

مرحله دوم : اضافه کردن کتابخانه به پروژه

کافیه داخل این مسیر برید و کلیک کنید: File -> New -> Import Module

اضافه کردن ماژول کتابخانه ی opencv - مرحله 1

بعد با یک پنجره جدید رو به رو میشیم . در صفحه ی باز شده آدرس فایل جاوا کتابخانه ای که دانلود کردیم رو وارد می کنیم. برای مثال آدرس به شکل زیر می باشد.

Downloads\opencv-4.1.2-android-sdk\sdk\java…

بعد از انجام این مرحله کافیه روی next کلیک کنید تا در قدم بعدی تنظیمات پیش فرض را تایید کنیم.

در نهایت با کلیک روی دکمه ی finish این مرحله تمام می شود.

اضافه کردن ماژول کتابخانه ی opencv - مرحله 2

 

مرحله سوم: رفع error هایی که هنگام Sync کردن Gradle اتفاق می افتند

احتمالا بعد از مرحله اضافه کردن کتابخانه ، به error های مربوط به build gradle بر خواهید خورد.

علت بروز این مشکل این می باشد که کتابخانه OpenCV در اندروید ، از ورژن SDK قدیمی استفاده می کند و شما آن نسخه از SDK را نصب نکردید.

مشکل old sdk در opencv

برای اینکه این خطا را به سرعت رفع کنیم پنل اندروید را به پنل پروژه تغییر می دهیم:

تغییر نوع نمایش به project

حالا build gradle مربوط به کتابخونه رو باز کنید.

بعد از این مرحله ، تنها کاری که لازمه انجام بدید اینه که compileSdkVersion و targetSdkVersion رو به آخرین نسخه sdk موجود تغییر بدید.

حالا با Sync کردن پروژه این مشکل برطرف میشه. (لازم نیست buildToolVersion رو تغییر بدید.)

 

مرحله چهارم: افزودن dependency کتابخانه OpenCV

وارد Files -> Project Structure بشید و در دیالوگ باز شده روی علامت + سبز رنگ گوشه راست کلیک کنید ، حال باید Module Dependency رو انتخاب کنید.

سپس با باز شدن دیالوگ choose module ، فایل کتابخانه را انتخاب کنید.

وقتی به صفحه dependency بر میگردید ، می بینید که فایل کتابخانه اضافه شده و این مرحله هم با زدن ok تمام میشه.

 

مرحله پنجم: افزودن کتابخانه native

به مسیری که در آنجا فایل zip کتابخانه را extract کرده بودید بروید. پوشه sdk رو باز کنید و بعد به پوشه ی native بروید. سپس از داخل این پوشه فایل libs رو کپی کنید و در آدرس زیر paste کنید.

Project name/ app/src/main

سپس فایل libs رو به jniLibs تغییر نام بدهید.

 

مرحله ششم: افزودن دسترسی های لازم (permissions)

حالا به خود پروژه برمیگردیم . همان طور که می دانید این کتابخانه به دسترسی استفاده از دوربین نیاز دارد که باید در فایل اندروید مانیفست اضافه بشود.

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/>

جا داره بگم که بعدا در قالب یک آموزش دیگه ، به کمک این کتابخانه یک پروژه گرافیکی ساده درست خواهیم کرد. اما برای الان آموزش مون رو با گفتن این نکته تموم میکنیم.

چون در این مورد ما از کتابخونه native استفاده کردیم ، اصلا دور از ذهن نیست که در آخر حجم فایل apk خروجی بالا بره. یک راه حل برای این مشکل استفاده از ABI splits هست.

راه دیگه برای کاهش حجم فایل apk استفاده از OpenCV Manager هست.

داخل همان فولدری که محتویات کتابخونه رو extract کرده بودید یک فایل به نام apk هست که داخلش انواع openCV Manager برای معماری های مختلف اندروید موجوده.

در قدم آخر برای تست روی دستگاه مورد نظرمون در command prompt این دستور را اجرا میکنیم:

C:\Users\Nacm\Downloads\opencv-4.1.2-android-sdk\apk>adb install OpenCV_4.1.2_Manager_4.12_armeabi-v7a.aka

در صورتی که مراحل را به درستی انجام داده باشید ، بعد از اجرای کد بالا پیام Success را در پنجره ی CMD مشاهده خواهید کرد.

 

به این پست امتیاز دهید

روی ستاره های کلیک کنید و امتیاز بدید

میانگین امتیاز 4.2 / 5. تعداد: 6

از امتیاز شما متشکریم

2 دیدگاه در نوشته: “پیاده سازی کتابخانه OpenCV در اندروید به زبان ساده

  1. سجاد.ب گفت:

    ممنون از مطلب به‌روزتون.
    من در حال حاضر از نسخه قدیمی‌تر OpenCv 3.4.7 در برنامه ام استفاده می‌کنم. و متاسفانه در حال حاضر به شکلی است که نیاز به OpenCv Manager دارد. حقیقتاْ این برنامه اولین کار اندرویدی بود انجام دادم و الان بر روی اندروید۶ کار میکنه. الان نیاز به توسعه و ارتقاء‌ش برا اندرویدای بالاتر مانند ۱۰ دارم و میخوام از شر OpenCV Manager هم که گویا منسوخ شدهُ خاتص بشم.
    الان دو سوال دارم:
    ۱- آیا برای خلاص شدن از OpenCv Manager نیاز به بروزرسانی OpenCv در اندرویداستدیو دارم؟
    ۲- آیا OpenCv قابل بروز شدن هست یا باید کاملا حذف بشه و نسخه جدیدش رو جایگزین کنم؟

    باتشکر از شما

    1. نسیم نژند گفت:

      سلام ممنون از شما که وقت گذاشتین.
      مطمئن نیستم که به این شکل مشکل تون حل شه اما به این دو مقاله یه نگه بندازین و ببینین با حذف opencv manager و فقط استفاده از opencv به این ترتیبی که گفته شده میتونه مشکل رو برطرف کنه

      https://medium.com/@rdeep/android-opencv-integration-without-opencv-manager-c259ef14e73b

      https://medium.com/@nhancv/setup-opencv-android-without-install-opencv-manager-apk-bea6acf9e2c1

      اگه نتیجه رو به من هم بگین ممنون میشم تا اگه مشکل برطرف نشد فکر دیگه ای کنیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Enter Captcha Here : *

Reload Image