PDA

View Full Version : سوال: خواندن لحظه ای رنگ 4 تا چراغ در یک فیلم



md3848
جمعه 14 شهریور 1399, 14:38 عصر
سلام - یه برنامه پردازش تصویر میخوام بنویسم که یه فیلم ( وبکم ) رو میگیرم و 4 تا چراغی که تو فیلم ( اون 4 تای مد نظر من که کنار هم هستن و نه هر چراغی! ) رو رنگشون رو در هر لحظه بخونم، چیزی که فعلا به ذهنم میرسه اینه که باید از کتابخونه OpenCV استفاده کنم، حالا نمیدونم آیا مناسب اینکار هست نی، یا این که تو C#‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ روش های بهتری کتابخونه های بهتری برای این کار هستش و ...؛ خواستم دوستان یکم در این زمینه راهنمایی کنن تا ما استارت یادگیرشو بزنیم :لبخند:
الان یه نرم افزار C#‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ دارم، میخوام این برنامه پردازش تصویر فوق رو هم بهش پیوست کنم سر همین اولیتم اینه نرم افزارم تو C#‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ و ویژوال استدیو باشه تا با برنامه قبلیم یکی کنم ( تا 1 نرم افزار داشته باشم بجای 2 تا ) ولی خب اگه محیط و نرم افزار های بهتری ( C#‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ , ویژوال استدیو ) باشه مشکلی برا کار باهاش ندارم ( هر چند دل کندن از خونواده C یکم سخته برام :گریه::لبخند: )

--------------------------------

1) برای استفاده از OpenCV تو C / CPP به این لینک باید مراجعه کرد فک کنم : OpenCV Releases (https://opencv.org/releases/)
[1.1] تو لینک فوق، دو نسخه 3 و 4 رو داره به صورت موازی آبدیت میده براش؛ چرا؟ تو تاریخ های زیر 2 نسخه رو به صورت موازی آبدیت داده براش؛ داستانش چیه؟ چرا اینطوره؟ :
2020-07-18 : 4.4.0 و 3.4.11
2020-04-06 : 4.3.0 و 3.4.10
2019-12-23 : 4.2.0 و 3.4.09
و....

2) برای استفاده از OpenCV تو C#‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎ دو تا ابزار کمکی پیدا کردم، OpenCvSharp4 (https://www.nuget.org/packages/OpenCvSharp4/) و Emgu.CV (https://www.nuget.org/packages/Emgu.CV/)
[2.1] نمیدونم این اصطلاح ( ابزار کمکی ) درست هستش یا نه؛ تو نت دیدم اصطلاح wrapper رو به این ابزارهای کمکی اطلاق کرده بودن، معنی کلمه wrapper هم چیز خاصی نی، نمیدونم...
[2.2] فرق این دو چیه؟
[2.3] کدومش بهتره؟
[2.4] چرا نمیشه مستقیم از خود کتابخونه OpenCV تو C#‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎ استفاده کرد و باید از یکی از این دو ابزار کمکی استفاده کرد؟

------------------------------------

فیلمی که از وبکم قراره بگیرم حاوی تصاویری مث تصویر زیر هستش که رنگ اون 4 تا چراغ کنار هم رو باید در هر فریم از فیلم رو بررسی کنم و بخونم
پهباد از زمین بلند میشه و مثلا تا ارتفاع 100 متری میره بالا ( فاصله زمینی پهباد از چراغ ها هم مثلا 200 متر )
حالا سوالم اینه که منطق انجام این پروژه به چه صورت میشه؟ چون اولین پروژه ام در این زمینه هستش یکم فعلا گنگه برام انجامش و منطق انجامش، مثلا اول باید تصویر رو سیاه-سفید کنم بعد نویز فلانو! بگیرم بعد موقعیت لحظه ای چراغ ها رو پیدا کنم( حالا چطوری!) بعد به ترتیب بخونم؛ یا این که نیاز به این بازی ها نی و کار ساده تر از این حرفاس؟ ( مثلا چند الگو از چراغ در رنگ های مختلف به برنامه بدیم و برنامه برامون پیداش کنه، به همین سادگی :لبخند:، البته چون رنگ چراغ از سفید کامل تا قرمز کامل به صورت خطی تغییر میکنه با افزایش ارتفاع پهباد، فک کنم نیاز باشه 2*256 تا الگو از رنگ های مختلف چراغ بدم به برنامه :گریه: البته اینا فعلا حدس و گمان منه، حالا باید پیش برم ببینم منطق و روال کار چطوریه :لبخند: )

152130

------------------------------------

wrapper های سایت emgu.com (http://www.emgu.com/)

نکته : cross platform (https://fa.wikipedia.org/wiki/%DA%86%D9%86%D8%AF%D8%B3%DA%A9%D9%88%DB%8C%DB%8C) ( چند سکویی ) : یعنی تو سیستم عامل های مختلف قابلیت استفاده داره، ویندوز، لینوکس و...
سایت فوق دو تا wrapper ارائه داده :
1) Emgu TF (http://www.emgu.com/wiki/index.php/Emgu_TF) : یک wrapper چند سکویی .NET برای کتابخونه Google Tensorflow (https://www.tensorflow.org/) هستش.
2) Emgu CV (http://www.emgu.com/wiki/index.php/Main_Page) : یک wrapper چند سکویی .NET برای کتابخونه پردازش تصویر OpenCV (https://opencv.org/) هستش.

سوال : سوالی که برام ایجاد شده اینه که فرق Google Tensorflow با OpenCV چیه؟

------------------------------------

سوال : تو سایت Emgu CV یه فایلی با نام CUDA گزاشته حدود 500 میگه، این فایل کارش چیه دقیقا؟

md3848
شنبه 15 شهریور 1399, 08:47 صبح
...................