Accord.NET کتابخانهای است متنباز و بسیار کارآمد که در آن توابع بسیار زیادی در حوزهی تحلیل آماری (statistical analysis)، یادگیری ماشین (machine learning)، پردازش تصویر (Image processing) و بینایی ماشین (computer vision) قرار گرفتهاند تا در برنامههای NET. ایی مورد استفاده قرار گیرند.
...
فرض کنید میخواهیم بارکد این قبض را یافته و سپس عدد متناظر با آنرا در برنامه بخوانیم.
مراحل کار به این صورت هستند:
بارگذاری تصویر و چرخش آن در صورت نیاز
ابتدا تصویر بارکد دار را بارگذاری کرده و آنرا تبدیل به یک تصویر سیاه و سفید میکنیم: // load the image and convert it to grayscale
var image = new Mat(fileName);
if (rotation != 0)
{
rotateImage(image, image, rot ...
ساخت یک OCR ساده تشخیص اعداد انگلیسی به کمک OpenCV
این مطلب را میتوان به عنوان جمع بندی مطالبی که تاکنون بررسی شدند درنظر گرفت و در اساس مطلب جدیدی ندارد و صرفا ترکیب یک سری تکنیک است؛ برای مثال: چطور یک تصویر را به نمونهی سیاه و سفید آن تبدیل کنیم؟ کار با متد Threshold جهت بهبود کیفیت یک تصویر جهت تشخیص اشیاء تشخیص کانتورها (Contours) و اشیاء موجود در یک تصویر آشنایی با نحوهی گروه بندی تصاویر مشابه و مف ...
تشخیص اشخاص به کمک OpenCV
فرض کنید قصد دارید یک سیستم حضور غیاب مبتنی بر تشخیص چهره را طراحی کنید. قسمت استخراج چهره، از تصویر کلی رسیده را بررسی کردیم . اما در ادامه چگونه تشخیص دهیم که این چهره متعلق به چه شخصی است؟ با توجه به اینکه تصویر چهرهی یک شخص میتواند از زوایای مختلفی تهیه شود و یا حتی حالات روحی منعکس شدهی در صورت نیز در تغییر بیت و بایتهای تصویر چهره مؤثر هستند.
بانک اطلاعاتی تصاویر چهرههای اشخا ...
در قسمت قبل با نحوهی استفاده از یک trained data از پیش آماده شدهی تشخیص چهره، آشنا شدیم. در این قسمت قصد داریم با نحوهی تولید این فایلهای XML آشنا شویم و یک تشخیص دهندهی سفارشی را طراحی کنیم.
طراحی classifier سفارشی تشخیص خودروها
برای طراحی یک تشخیص دهندهی سفارشی مبتنی بر الگوریتمهای Machine learning، نیاز به تعداد زیادی تصویر داریم. در اینجا از بانک تصاویر خودروهای « UIUC Image Database for Car Detec ...
تشخیص چهره به کمک OpenCV
OpenCV به کمک الگوریتمهای machine learning (در اینجا Haar feature-based cascade classifiers ) و دادههای مرتبط با آنها، قادر است اشیاء پیچیدهای را در تصاویر پیدا کند. برای پیگیری مثال بحث جاری نیاز است کتابخانهی اصلی OpenCV را دریافت کنید؛ از این جهت که به فایلهای XML موجود در پوشهی opencv\sources\data\haarcascades آن نیاز داریم. در اینجا از دو فایل haarcascade_eye_tree_eyeglasses.xml و haa ...
تشخیص BLOBs در تصویر به کمک OpenCV
BLOB یا B inary L arge OB ject به معنای گروهی از نقاط به هم پیوستهی در یک تصویر باینری هستند. Large در اینجا به این معنا است که اشیایی با اندازههایی مشخص، مدنظر هستند و اشیاء کوچک، به عنوان نویز درنظر گرفته خواهند شد و پردازش نمیشوند.
برای نمونه در تصویر ذیل، تصویر سمت چپ، تصویر اصلی است و تصویر سمت راست، نمونهی باینری سیاه و سفید آن. سپس عملیات تشخیص Blobs بر روی تصویر اصل ...
تشخیص قسمتهای مشابه تصاویر در OpenCV
در شکل زیر، دو تصویر سمت چپ و راست، اندکی با هم تفاوت دارند و در تصویر سوم، نقاط مشابه یافت شدهی توسط OpenCV ترسیم شدهاند:
کدهای مثال فوق را در ذیل مشاهده میکنید: var img1 = new Mat(@"..\..\Images\left.png", LoadMode.GrayScale);
Cv2.ImShow("Left", img1);
Cv2.WaitKey(1); // do events
var img2 = new Mat(@"..\..\Images\right.png", LoadMode.GrayScale);
Cv ...
قطعه بندی (segmentation) تصویر با استفاده از الگوریتم watershed
در تصویر ذیل، تصویر یک راهرو را مشاهده میکنید که توسط ماوس قطعه بندی شدهاست (تصویر اصلی یا سمت چپ). تصویر سمت راست، نسخهی قطعه بندی شدهی این تصویر به کمک الگوریتم watershed است.
همانطور که در تصویر نیز مشخص است، نمایش هر ناحیهی قطعه بندی شده، شبیه به سیلان آب است که با رسیدن به مرز قطعهی بعدی متوقف شدهاست. به همین جهت به آن watershed (آب پخشان) ...
خوشه بندی تصویر به کمک الگوریتم K-Means توسط OpenCV
الگوریتم k-Means clustering را میتوان به کمک یک مثال بهتر بررسی کرد. فرض کنید شرکت منسوجاتی قرار است پیراهنهای جدیدی را به بازار ارائه کند. بدیهی است برای فروش بیشتر، بهتر است پیراهنهایی را با اندازههای متفاوتی تولید کرد تا برای عموم مردم مفید باشد. اما ... برای این شرکت مقرون به صرفه نیست تا برای تمام اندازههای ممکن، پیراهن تولید کند. بنابراین اندازههای اشخاص را در سه ...