OpenCV در OS X Sierra

وقتی آزمایش OpenCV را شروع کردم ، با یک آموزش واقعیت افزوده iOS شروع کردم. این یک آموزش قدیمی بود که از سال 2014 نوشته شده در Objective-C. من می خواستم هر چند وقت یکبار از Swift استفاده کنم ، بنابراین آموزش را با Swift 3.0 بازنویسی کردم. من اکثر این کارها را در Swift انجام داده ام ، جدا از چند مشکل جزئی در زمینه انیمیشن صدا و انفجار که نمی توانم آن را حل کنم (منبع را می توان در اینجا یافت: OpenCVSwift). می خواستم بیشتر در زمینه تشخیص ویژگی و ردیابی ویژگی با OpenCV آزمایش کنم ، اما وقتی در بعضی از روش های OpenCV خاص نامیدم ، در پرونده های Objective C ++ با خرابی هایی روبرو شدم. برای تعیین اینکه آیا این مشکل با کد هدف من ++ / Swift وجود دارد ، تصمیم گرفتم با استفاده از C ++ یک پروژه Xcode جدید ایجاد کنم. به این ترتیب می توانم کد C ++ خالص را در Xcode اجرا کنم و ببینم آیا همان نتایج را می گیرم یا خیر.

هنگام توسعه برای IOS ، نصب OpenCV به راحتی با استفاده از Cocoapods امکان پذیر است. فقط یک فایل غلاف و یک سربرگ Bridge تنظیم کنید و خوب است که بروید.

هدف "OpenCVSwift" use_frameworks! پایان غلاف "OpenCV" "OpenCV2-Beş"

برای سیستم عامل X نیز صحیح نیست ، اما ما HomeBrew را به عنوان مدیر بسته برای سیستم عامل X داریم. ما باید OpenCV را نصب کنیم و Xcode را به صورت دستی پیکربندی کنیم. بسیاری از آموزش ها و آموزش های ویدئویی برای کمک به شما در این فرآیند وجود دارد. من قبل از اینکه پروژه Xcode خود را اجرا و اجرا کنم ، چند مورد را طی کردم. در اینجا مراحلی که من برداشته ام ، مشکلاتی که با آنها روبرو شده ام و روش حل مشکلاتم آورده شده است. امیدوارم این بتواند به شخص دیگری که علاقمند به همکاری با OpenCV در Xcode است کمک کند.

نصب OpenCV روش های مختلفی برای نصب OpenCV وجود دارد. یکی از آنها استفاده از HomeBrew است. با اجرای دستور brew search و سپس دستور brew install می توانید بسته OpenCV را پیدا کنید. همچنین می توانید فایلهای منبع OpenCV را بارگیری کرده و آنها را با CMake کامپایل کنید. دستورالعمل ها را می توان در اینجا یافت. من HomeBrew را انتخاب کردم.

از Opencv brew install homebrew / science / OpenCv3 استفاده می کند

این نصب اصلی OpenCV است. ممکن است بخواهید / نیاز به استفاده از ماژول های OpenCV اضافی دارید که حاوی کد منبع اضافی برای شناسایی و پیگیری ویژگی ها هستند. می توانید در هنگام نصب آنها را با تعیین گزینه های اضافی نصب کنید.

مرورگرها نصب homebrew / science / OpenCV3 - مشارکت دارند

هنگام نصب ماژول های اضافی مشکلی پیش آمد. پرونده های خاصی یافت نشد.

dyld: کتابخانه بارگیری نشده است: @ rpath / libopencv_calib3d.3.2.dylib.

من OpenCV را با استفاده از HomeBrew حذف کردم و پس از آن پاکسازی را اجرا کردم. سپس من OpenCV را با HomeBrew با ماژول های اضافی دوباره نصب کردم ، که به نظر می رسد مشکل را حل می کند. در این مقاله stackoverflow کپی کردن پرونده ها پیشنهاد شده است. با این حال ، من فکر می کنم اظهار نظر تیم اسمیت در مورد یک لینک مشترک گمشده / شکسته در واقع مشکل من بوده است.

سپس برای یافتن پرونده ها و کتابخانه های هدر OpenCV و تنظیم پرچم های لینک دهنده ، باید Xcode را پیکربندی کنید. در تنظیمات ساخت در Xcode باید چهار عنصر را به روز کنید.

· شامل "همیشه مسیرهای کاربر را جستجو کنید" باید روی "بله" تنظیم شود

· مسیرهای جستجوی هدر باید به محل اجرای OpenCV شما اشاره کنند. این معمولاً usr / local است یا در صورت استفاده از HomeBrew ، /usr/local/Cellar/opencv3/3.2.0/include

· مسیرهای جستجوی کتابخانه باید به محل اجرای OpenCV شما اشاره کنند. این معمولاً usr / local / lib یا اگر از HomeBrew استفاده می کنید ، /usr/local/Cellar/opencv3/3.2.0/lib

· سایر پرچم های پیوند دهنده باید تنظیم شوند که لیست پرچم های نسخه OpenCV شما را در بر می گیرد. می توانید با اجرای دستور pkg-config یک لیست کامل دریافت کنید: pkg-config --cflags --libs opencv

اگر OpenCV را با HomeBrew نصب کردید ، ممکن است لازم باشد که مکان فایل opencv.pc را مشخص کنید: pkg-config --cflags --libs /path/to/opencv.pc

برای نسخه من از OpenCV ، محل opencv.pc در محل زیر بود: pkg-config --cflags --libs /usr/local/Cellar/opencv3/3.2.0/lib/pkgconfig/opencv.pc

برای نسخه من OpenCV لیست پرچم های لینک دهنده به شرح زیر بود: -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopenvlvopengv

کشف دیگری که من هنگام اجرای OpenCV 3.2 در OS X Sierra 10.12.3 انجام دادم این است که وقتی من ضبط دوربین را می خواندم ، باید یک تماس را به std :: waitKey (10) وارد کنم ، در غیر این صورت وب کم اجازه نداد پنجره باز شود. به نظر می رسد بسیاری از آموزش های OpenCV از نسخه های قدیمی تر OpenCV استفاده می کنند و شامل این روش تماس نمی شوند. من مطمئن نیستم که این سیستم عامل OS X است یا OpenCV 3.2.

منابع نحوه نصب OpenCV 3 در Mac نصب OpenCV 3 در پروژه Yosemite OpenCV در Xcode Tutorial Mac