فروش پروژه پردازش تصویر تشخیص فضای خالی در سنگ
توضیحات پروژه :
یک تصویر باینری (این تصویر از مقطع سنگ گرفته شده و به نحوی باینری شده که فضاهای خالی سنگ سیاه و سایر بخش ها سفید هستند) به عنوان ورودی به مدل داده می شود. ابعاد تصویر 200 در 200 پیکسل است. نسبت پیکسل های سیاه به سفید محاسبه می شود. بر اساس محل قرار گیری پیکسل های سیاه (که در واقع نماینده فضای متخلخل سنگ هستند) تصویر دوم شبیه سازی می شود. تصویر دوم ملاکی برای شبیه سازی تصویر سوم خواهد بود. این فرآیند انقدر تکرار می شود تا تعداد 200 تصویر ساخته شود. این تصاویر با کنار هم قرار گرفتن تشکیل یک مکعب را می دهند که در واقع شبیه سازی شده از تصویر اولیه است. برای انجام این کار الگوریتم های مختلفی پیشنهاد شده که بررسی های اینجانب نشان می دهد الگوریتم cross correlation بهترین جواب را می دهد و لذا لازم است کدنویسی بر اساس این الگوریتم انجام شود. در این ارتباط دو مقاله ضمیمه شده که جزییات کار را بیان کرده است. ابعاد تصویر ورودی قابل تغییر می باشد. مثلا می توان تصویر را با ابعاد 128*128 هم به مدل داد ولی نکته مهم انست که مکعب خروجی بایستی ابعاد برابر با تصویر ورودی داشته باشد.
توضیحات مجری انجام کار :
فایلی که فرستادم شامل 4 پوشه هست. پوشه مقالات، پوشه اجرای کد که نتیجه 2 اجرای محدود کد رو قرار دادم، پوشه ای شامل تعداد تصویر با اندازه مناسب از برش از سطح مقطع سنگ و در نهایت پوشه اصلی با نام code در داخل این پوشه همه توابع مورد نیاز تعریف شده اند و اسکریپت اصلی برای اجرا Main_code.m هست. برای اجرای درست کد به قسمت های زیر توجه کنید :
1- کد روی متلب ورژن R2014b نوشته و تست شده و با یکی دو نسخه بالاتر و پایین تر بدون مشکل اجرا میشه
2- کد مجهز به یک پنجره پیمایش برای انتخاب تصویر 2 بعدی مورد نظر برای شبیه سازی هست. من تعدادی تصویر توی پوشه ای با نام thin section of rock image قرار دادم. می تونید از اون ها استفاده کنید. اما در استفاده از سایر تصاویر محدودیتی ندارید؛ برای اینکه با ابعاد تصاویر به مشکل نخورید داخل همین پوشه یه قطع کد مستقل با نام extra_function.m قرار دادم. با اجرای اون در هر جا می تونید با استفاده از پنجره پیمایش از هر قسمت سیستم یا حافظه جانبی تصویر مورد نظر رو انتخاب کنید. این کد تصویر متناسب شده از نظر سایز رو در مسیر خودش یا پوشه ای که کد داخلش هست ذخیره میکنه. این قسمت برای این هست که بتونید با تصاویر با ابعاد گوناگون کار کنید. این تصویر به ابعاد 800در 800 هست. و برنامه برای لایه های آموزشی برای تولید تصویر سه بعدی اون رو به 16 زیر تصویر 200در200 تقسیم میکنه
3- کد در در دریافت نوع تصویر و فرمت تصویر کامل سازگار هست و هر فرمتی رو قبول میکنه. و نتیجه نهایی براساس تصویر خاکستری ورودی نمایش داده میشه مگر اینکه تصویر ورودی باینری باشه که بصورت باینری نمایش داده میشه
4- در نمای سه بعدی برای تصاویر باینری من برای اینکه بتونیم تصویر مناسبی رو ببینیم پیکسل های نماینده صفر رو شفاف و پیکسل های نماینده یک رو بصورت رنگ سبز و حاشیه ها رو از یک نگاشت پیشفرض متلب استفاده کردم. برای نمایش یکدست نمای سه بعدی یه سری تنظیمات اعمال کردم. که فقط برای نمایش بهتر هست. مثلا گوشه های پلات رو غیر فعال و مش بندی رو غیر فعال و … در کل برای دید بهتر هست
5- پلات سه بعدی بصورت اتوماتیک ذخیره میشه
6- کد از نظر اجرا فوق العاده بهینه شده ولی با توجه به حجم محاسبات باز هم زمان میبره تا خروجی نهایی رو بده. من برای ابعاد 50*50*50 با 30 ثانیه و ابعاد 100*100*100 در 9 دقیقه خروجی گرفتم. چیزی که هست زمان بصورت 2 به توان نسبت ابعاد تغیر میکنه به عبارت ساده تر برای یک اجرای 200*200*200 یعنی 6 میلیون نقطه به زمان 9*16 دقیقه زمان نیاز هست. یعنی 151 دقیقه
7- برای تغیر ابعاد قسمت NaN(100,100,100) در ابتدای کد رو ویرایش کنید
8- دقت کنید که به ابعاد یعنی 2 مولفه اول مقادیری از ضریب 4 بدید بصورتی که هنگام تقسیم بر چهار نتیجه صحیح بده. مثلا مقدار 2002 و 2001 و 2003 در برنامه خطا می دهد یا مقدار 130 پس این نکته رو در دادن ابعاد رعایت کنید.
9- برای سرعت بیشتر یه فایل فایل .mex64 تولید کردم. اگر از ویندوز 32 بیتی استفاده میکنید باید از فایل کد سی که فرستادم توی ویژوال استودیو برای سیستم 32 بیتی یه فایل متناسب با سیستم خودتون تولید کنید.
نقد و بررسیها
هنوز بررسیای ثبت نشده است.