استفاده از Emgu CV برای پردازش تصاویر در سی شارپ دات نت
سلام؛
امروز قصد دارم تا شما رو با یکی از کتابخانههای برنامهنویسی برای پردازش تصویر و بینایی ماشین آشنا کنم. کتابخانه امجو سی وی Emgu CV یک کتابخانه متن باز تحت زبان C# است که به شما اجازه میدهد تا به نرم افزارهای تجاری خود قابلیت پردازش تصاویر را اضافه کنید. بنابراین برای افزودن قابلیت پردازش تصویر به نرم افزارهایی که در محیط ویژوال استودیو مایکروسافت توسعه میدهید میتوانید از Emgu CV استفاده کنید.
در حقیقت Emgu CV یک پوشش Wrapper است که به شما اجازه میدهد تا در زبان C# از قابلیتهای کتابخانه دیگری بنام Open CV استفاده کنید. کتابخانه Open CV تحت زبان C++ ارایه شده است.
نسخههای جدید کتابخانه Emgu CV به شما اجازه میدهند تا برای اجرای فرآیندهای پردازش تصویر از قابلیتهای پردازنده گرافیکی GPU (Graphical Processing Unit) کارت گرافیک خود استفاده کنید. برای نصب و استفاده از این نسخههای کتابخانه Emgu CV باید ابتدا درایور GPU کارت گرافیک خود را نصب کنید. بعنوان مثال برای کسانی که از کارت گرافیکهای با چیپست NVIDIA استفاده میکنند باید درایور nvcuda.dll را دانلود و نصب کنید.
از آنجایی که نصب درایور GPU کارت گرافیک برای من زمانبر و مشکل بود، ترجیح دادم که با نسخههای قدیمیتر کتابخانه EmguCV کار کنم. این نسخههای قدیمیتر قابلیت تسریع پردازشها به کمک GPU را ندارند و نیازی هم به درایور GPU ندارند. بنابراین در اولین قدم بسته به اینکه سیستم عامل شما 32 بیتی یا 64 بیتی است، یکی از دو نسخه زیر را دانلود و نصب کنید:
http://sourceforge.net/projects/emgucv/files/emgucv/2.1.0.0/libemgucv-2.1.0.793-win32.exe/download (28.2 MB)
http://sourceforge.net/projects/emgucv/files/emgucv/2.1.0.0/libemgucv-2.1.0.793-win64.zip/download (29.5 MB)
لینک اول که مربوط به کتابخانه 32 بیتی است یک فایل نصب کامل است و تنظیماتی مانند اضافه کردن emgu cv به مسیر پیش فرض سیستم، و نصب پیش نیازها را نیز انجام میدهد.
اما لینک دوم که مربوط به کتابخانه 64 بیتی است، تنها شامل یک فایل فشرده zip است که باید بعد از اینکه آنرا از حالت فشرده خارج کردید، تنظیمات مسیر و نصب پیش نیازها را خودتان انجام دهید. برای اینکار باید مسیر فولدر bin مثلا c:\emgu cv\emgu 2.1\bin را به مسیر پیش فرض سیستم در Control Panel -> System -> Advanced System Settings -> Environment Variables -> System Variables -> Path اضافه کنید. سپس فایل vcredist_x64.exe را نیز نصب کنید که حاوی بسته توزیع ویژوال سی است.
اگر تا این بخش کار را به درستی انجام داده باشید و کتابخانه مناسب سیستم خود را نصب کرده باشید، باید قادر باشید تا مثالهای موجود در کتابخانه emgu cv را به درستی اجرا کنید. برای ارزیابی این موضوع، به فولدر محل نصب emgu cv رفته و از فولدر Emgu.CV.Example مثال HelloWorld را باز کرده و اجرا کنید. در صورت اجرای صحیح، این مثال باید پنجره جدیدی را بر روی صفحه باز کرده و پیام Hello World را نمایش دهد مانند شکل زیر:
اگر در اجرای این برنامه نمونه به مشکلی برخورد کردید باید بررسی کنید که شاید نسخه مناسب سیستم خود را دانلود نکرده اید.
بسیار خوب، حالا وقت آن است که اولین برنامه خود به کمک Emgu CV را بنویسیم! یک پروژه جدید به زبان C# در محیط ویژوال استودیو ایجاد کنید.
برای استفاده از کتابخانه emgu cv ابتدا باید فایلهای DLL مربوط به این کتابخانه را به مجموعه کتابخانههای پروژه خود اضافه کنید. برای اینکار روی پروژه خود در Solution Explorer کلیک راست کرده و گزینه Add Reference را انتخاب کنید. سپس فایلهای Emgu.CV.dll و Emgu.Util.dll را از مسیر emgu 2.1\bin انتخاب کرده و روی OK کلیک کنید.
به ابتدای برنامه خودتان سه دستور using زیر را برای استفاده از کتابخانه emgu cv اضافه کنید:
using Emgu.CV; using Emgu.Util; using Emgu.CV.Structure; همچنین بررسی کنید که دستورات using زیر در ابتدای برنامه شما قرار نداشته باشند. در غیر اینصورت، این دستورات رو از ابتدای برنامه حذف کنید:
using System.Drawing
حالا به پنجره فرم اصلی برنامه خود، یک دکمه و یک کنترل PictureBox اضافه کنید. برای دکمه، کد زیر را بنویسید:
private void button1_Click(object sender, EventArgs e) { OpenFileDialog Openfile = new OpenFileDialog(); if (Openfile.ShowDialog() == DialogResult.OK) { //Load the Image Image My_Image = new Image(Openfile.FileName); //Display the Image pictureBox1.Image = My_Image.ToBitmap(); } }
قبل از اینکه بتوانید پروژه خود را اجرا کنید، لازم است چند فایل DLL دیگر را نیز به پروژه اضافه کنید. قبلا به این موضوع اشاره کردم که Emgu CV یک پوشش Wrapper بر روی Open CV است. بنابراین برای اینکه Emgu CV بتواند کار کند به فایلهای کتابخانه Open CV نیز نیاز دارد. برای اینکه فایلهای کتابخانه Open CV همیشه در مسیر اجرایی برنامه شما و در دسترس کتابخانه Emgu CV قرار داشته باشند باید به این ترتیب عمل کنیم: ابتدا روی پروژه خود در Solution Explorer کلیک راست کرده و گزینه Add -> Add Existing Item را انتخاب کنید. سپس به مسیر emgu 2.1\bin رفته و تمامی فایلهای DLL زیر را انتخاب کرده و به پروژه خود اضافه کنید:
cv210.dll, cvaux210.dll, cvextern.dll, cxcore210.dll, highgui210.dll, ml210.dll, ZedGraph.dll, zlib.net.dll
در پنجره Solution Explorer فایلهای DLL فوق را که به پروژه اضافه کردید انتخاب کرده و در پنجره properties خاصیت Copy To Output Directory را به Copy Always تغییر دهید.
حالا میتوانید پروژه خود را build کرده و اجرا کنید.روی دکمه کلیک کنید و یک فایل تصویری را انتخاب کنید. برنامه فایل تصویری انتخاب شده را در پنجره نمایش خواهد داد. این برنامه بسیار ساده بود و هنوز هیچ پردازشی روی تصاویر انجام نمیدهد. اما در قسمت های بعدی ویژگیهای جدیدی را به این برنامه خواهیم افزود.
توجه داشته باشید که در صورتیکه بر روی سیستم 64 بیتی برنامه نویسی میکنید و از Emgu CV 64 bit استفاده کرده اید لازم است تا در قسمت Configuration Manager پروژه خود نوع CPU سیستم مقصد را x64 انتخاب کنید تا پروژه به درستی اجرا شود. در غیر اینصورت زمانیکه تصویر را لود میکنید یک خطای نوع دریافت خواهید کرد.
برای اطلاعات بیشتر میتوانید از لینکهای زیر نیز استفاده کنید:
http://www.c-sharpcorner.com/UploadFile/shubham0987/starting-with-emgu-cv-in-net/
http://www.emgu.com/wiki/index.php/Download_And_Installation
مطالب مشابه :
بینایی ماشین
این فایل pdf که ۵۵ صفحه می باشد. شما را با open cv آشنا می کند. سر فصل هایی که در این فایل با آن آشنا
بینایی ماشین چیست؟
دسترسی رایگان به مقالات معتبر - بینایی ماشین چیست؟ - دسترسی رایگان به مقالات معتبر
بینایی ماشین
بینایی ماشین. دسته بندی : بينايي ماشين سه شنبه ششم اسفند 1392. فایل مربوط به درس بینایی ماشین،
***بینایی ماشین(Machine vision)*** ادامه مطلب...
مهندسی مکانیک بیوسیستم - ***بینایی ماشین(Machine vision)*** ادامه مطلب - ارائه دهنده
بینایی ماشین روبات های شرکت ABB
بینایی ماشین روبات های شرکت abb شرکت abb برای بینایی روباتهای خود در فرآیند pick & place از سیستم
بینایی ماشین (Machine Vision)
مهندسی مكانيك ماشين هاي كشاورزی - بینایی ماشین (Machine Vision) - The Mechanics of Agricultural Machinery Engineering
مقدمهای بر بینایی ماشین (Machine Vision)
- مقدمهای بر بینایی ماشین (Machine Vision) - يكي از كاربردهاي بينايي ماشين در كنترل كيفيت
استفاده از Emgu CV برای پردازش تصاویر در سی شارپ دات نت
در این وبلاگ من اطلاعات مختلفی را که به مهندسی کامپیوتر و بخصوص بینایی ماشین مربوط میشوند
برچسب :
بینایی ماشین