اطلاعیه

Collapse
No announcement yet.

آمـوزش پـردازش تـصـویـر

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : آمـوزش پـردازش تـصـویـر

    سلام.
    حامد جان اگه توضیحات خاطرت باشه، قرار بود که برای تشخیص اینکه یه پیکسل به چه شی ای اختصاص داره، پیکسل های اطرافش رو نگاه کنیم، اگه پیکسلهای همسایه اش، زمینه نبودن و شماره گذاری شده بودن که این پیکسل هم شماره همون همسایه رو میگرفت در غیر این صورت یه شماره جدید میگرفت، این تیکه ای که مشخص کردید در واقع داره همسایه ها رو جستجو میکنه از گوشه بالا سمت چپ شروع میکنه و ... .
    یه بار دیگه توضیحات همراه برنامه رو هم نگاه کنید اونجا با شکل توضیح دادم
    موفق باشید.
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

    دیدگاه


      #17
      پاسخ : آمـوزش پـردازش تـصـویـر

      با سلام
      خدا قوت.
      اقای نحوی میشه توضیح کلی در مورد گام ششم(کوچک نمایی و بزرگ نماییی تصویر بدید)
      چون الگوریتم کدهای قبلی رو توضیح داده بودید. اینیکی رو ندادید.
      در ضمن این علامت با دستور مد چه معنی میده؟ MOD~(فکر کنم یعنی اگه حاصل مخالف صفر باشه هست ولی مطمئن نیستم)
      =============================================
      در کل من ذهنیت خوبی با اموزشهای شما دربارهی پردازش تصویر پیدا کردم.قصد ادامه ی اموزش ها رو ندارید؟

      چون تسلط شما رو دراین حوزه میدونم،گام های بعدی و اموزش های بعدی که باید یاد بگیریم رو هم
      میتونید لیست کنید؟ که احیانا چون تو این حوزه تازه وارد شدیم و در ضمن استادی هم بالای سرمون نیست به بیراهه نریم و درست و اصولی اموزش ببینیم نه هر چیزی که از این ور اونور با نام پردازش تصویر گیر میاد بگیریم بخونیم.
      رفرنس هم یادتون نره :redface:
      اگه جزوه ای هم در این مورد از اساتید دانشگاهیتون دارید من با کمال افتخار حاضرم اونو هر Nصدصفحه که باشه بشینم تایپ کنم .هم خودم استفاده ببرم و هم تو سایت بزارم تا دوستانمون در ECA هم مستفیض بشن.
      ===========================================
      منظور بنده در این پست از پردازش تصویر ، حوزه ی پردازش تصویر در رباتیک هست)
      ================================================
      با تشکر

      دیدگاه


        #18
        پاسخ : آمـوزش پـردازش تـصـویـر

        نوشته اصلی توسط H_A_M_E_D
        با سلام
        خدا قوت.
        اقای نحوی میشه توضیح کلی در مورد گام ششم(کوچک نمایی و بزرگ نماییی تصویر بدید)
        چون الگوریتم کدهای قبلی رو توضیح داده بودید. اینیکی رو ندادید.
        در ضمن این علامت با دستور مد چه معنی میده؟ MOD~(فکر کنم یعنی اگه حاصل مخالف صفر باشه هست ولی مطمئن نیستم)
        =============================================
        در کل من ذهنیت خوبی با اموزشهای شما دربارهی پردازش تصویر پیدا کردم.قصد ادامه ی اموزش ها رو ندارید؟

        چون تسلط شما رو دراین حوزه میدونم،گام های بعدی و اموزش های بعدی که باید یاد بگیریم رو هم
        میتونید لیست کنید؟ که احیانا چون تو این حوزه تازه وارد شدیم و در ضمن استادی هم بالای سرمون نیست به بیراهه نریم و درست و اصولی اموزش ببینیم نه هر چیزی که از این ور اونور با نام پردازش تصویر گیر میاد بگیریم بخونیم.
        رفرنس هم یادتون نره :redface:
        اگه جزوه ای هم در این مورد از اساتید دانشگاهیتون دارید من با کمال افتخار حاضرم اونو هر Nصدصفحه که باشه بشینم تایپ کنم .هم خودم استفاده ببرم و هم تو سایت بزارم تا دوستانمون در ECA هم مستفیض بشن.
        ===========================================
        منظور بنده در این پست از پردازش تصویر ، حوزه ی پردازش تصویر در رباتیک هست)
        ================================================
        با تشکر
        سلام. حامد جان خیلی خیلی خوشحالم که مفید بوده توضیحات.
        ---
        ایده بزرگ نمایی و کوچک نمایی تصویر به این صورت هست که مثلا یه تصویر داریم 15*15 اگه بین هر سطر و ستون، یک سطر و ستون اضافه کنیم یه تصویر با ابعاد 30*30 خواهیم داشت که با این کار تصویر دو برابر شده، ولی حالا مسئله اینجاست که درایه های این سطر و ستون های جدید رو چی بذاریم که ترکیب تصویر بهم نریزه؟ ساده ترین کار اینه که میانگین پیکسل های اطرافش باشه. برای کوچک سازی هم که مشکلی نیست فقط سطر و ستون رو حذف میکنیم.
        در مورد اون دستور هم کاملا درست فکر میکنید در متلب علامت ~ به معنی not هست معادل ! در سی.
        در مورد ادامه اش بقیه رو من خودم تجربی کار کردم پس روند مناسبی رو نمیتونم دنبال کنم، ولی اگه کتاب بخواهید کتاب رفرنس که همون کتاب گنزالس هست که دوستان توی سایت هم گذاشتن، یه کتاب دیگه هم خودم پلود کردم که حدود 200 مگ بود(در قسمت دانلود کتاب ها سرچ کنید پیداش میکنید). ولی با دیدگاه رباتیک کمکی نمیتونم بکنم چون خودم کار علمی در این زمینه نکردم امیدوارم دوستان دیگه بیان و کمک کنن.
        جزوه هم اگه استاد اجازه بده من خودم سر کلاس تایپ میکنم(سرعت تایپم بمراتب از سرعت نوشتنم سریع تره :mrgreen. انشالله دنبالشم سر کلاس پردازش تصویر دانشگاه تهران برم(اگه دانشگاهمون بذارم اونجا مهمان بشم) اگه محقق بشه چشم حتما جزوه اش رو تایپ میکنم و میذارم(البته میشه برای ترم آینده یعنی ترم اول 88-87).
        موفق باشید
        شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
        هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
        چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

        دیدگاه


          #19
          پاسخ : آمـوزش پـردازش تـصـویـر

          سلام دوست عزیز... :smile:

          شاید شما هم مثل من از سرعت پردازش در مطلب رنج می برید :sad:.به همین خاطر راهی هست که سرعت پردازش را بالا می بره.


          تکنیک های افزایش سرعت Matlab شامل روش هایی چون آنالیز عملکرد برنامه، بردارسازی و تبدیل کد های Matlab به فایل های MEX می شود.

          Matlab یک ابزار فوق العاده در پیاده سازی و اجرای الگوریتم ها می باشد. این نرم افزار با ایجاد محیط برنامه نویسی ساده و ارائه ی کتابخانه ی گسترده ای از توابع، امکان اجرا، تحلیل و نمایش الگوریتم های پیچیده را به کابر می دهد.

          این مقاله به مرور روش های افزایش سرعت نرم افزار Matlab می پردازد و مباحثی چون آنالیز عملکرد برنامه، بردارسازی و تبدیل کد های Matlab به فایل های MEX را پوشش می دهد.

          چرا سرعت Matlab پایین است؟

          Matlab یک زبان ترجمه شده (interpreted) می باشد. این بدان معنی است که هر عملیات نیاز به پردازش اضافی دارد. در زبان های تفسیر شده چون C یا c++ این زمان اضافی را نداریم. (Matlab دارای مکانیزم ایجاد کد بصورت لحضه ای و فوری می باشد که این مشکل را در مواردی کاهش می دهد).

          برای انجام یک دستورالعمل ساده در MATLAB ، مترجم باید به اپرندهای مربوطه رجوع کند و محاسبات صحیح را برای اجرا انتخاب کند. این انتخاب بستگی به انواع داده (حقیقی، مختلط، کاراکتر، منطقی و ...) و شکل اپرندها (اسکالر، ردیف، ستون، ماتریس و ...) دارد. هنگامی که دستورالعمل ها انجام شد، مقادیر بدست آمده باید ذخیره شود. برای یک تخصیص حافظه ی ساده، مترجم MATLAB باید هر دو اپرند ورودی و خروجی را مد نظر قرار دهد و تصمیم بگیرد که آیا احتیاج هست که حافظه ی بیشتری اختصاص یابد یا اینکه مقادیر بدست آمده باید در عمل اختصاص حافظه تبدیل شوند.

          این پردازش اضافی که صرف عمل اختصاص و انتخاب می گردد عامل اصلی کند بودن MATLAB نسبت به زبان های تفسیر شده است. این زمان اضافی هنگامی قابل توجه است که عملیاتی روی اسکالرها یا مجموعه ی کوچکی از داده ها انجام می شود. به همین دلیل حلقه هایی که درآن عملیات عددی انجام می شود سرعت اجرای پایینی در MATLAB دارند.

          توجه کنید که اگر 80درصد زمان اجرا به 20 خط از برنامه یا اجرای یک تابع اختصاص یابد، این قسمت همان جایی است که باید بهینه گردد.

          استفاده از ابزار MATLAB Profilerراه بسیارخوبی در تشخیص نقاطی از برنامه است که اجرای آن سنگین می باشد. این نقاط که اجرای آن سخت و وقت گیر است، اصطلاحاً تنگه ی برنامه نامیده می شود. این ابزار را می توان به دو صورت فراخوانی و استفاده نمود. راه اول استفاده از دستور profile در خط فرمان MATLAB می باشد و راه دیگر این است که در قسمت Desktop در صفحه ی اصلی MATLAB گزینه ی profile را انتخاب کنیم. این ابزار به شما اجازه می دهد تشخیص دهید که کدام قسمت از برنامه وقت بیشتری از پردازش را به خود اختصاص داده است. تصویر:



          تصاویر بالا گزارش ابزار profiler را در مورد یک برنامه تخمین حرکت نشان می دهد. در این برنامه از الگوریتم تطبیق بلوک استفاده شده است. با مطالعه ی گزارش بالا می توان به سرعت پی برد که اکثر زمان اجرا به تابع costFunctionMAD اختصاص یافته است. قسمت محاسبه ی میانگین اختلاف مطلق بلوک ها مهمترین عامل وقت گیر در داخل این تابع است.

          هنگامی که تنگه های برنامه را مشخص کردیم، می توانیم روش های زیر را به منظور بهبود عملکرد MATLAB به کار بگیریم.

          1) پیش تعریف آرایه ها
          2) بردارسازی برنامه
          3) کاربرد فایل MEX تفسیر شده

          این روش ها تنها برای برنامه هایی که شما نوشته اید کاربرد دارند. برای سریع کردن اجرای توابع داخلی و توکار MATLAB همانند filter و fft راه حل کلی وجود ندارد و در واقع این توابع به خوبی بهینه شده اند.

          پیش تعریف آرایه ها:

          هنگامی که آرایه ها در داخل حلقه می آیند. زمان اضافی برای تخصیص حافظه و کپی کردن اطلاعات تلف می شود. بطور کلی می توانیم توسط عمل اختصاص اولیه ی حافظه این زمان را کاهش دهیم. بدین منظور باید قبل از حلقه ها، توابع zeros را فراخوانی نمود. همچنین می توان با استفاده از تابع struct به همراه تابع repmat، آرایه های ساختاری را به برنامه اضافه نمود.

          بردارسازی برنامه:

          راه حل کلی برای افزایش سرعت اجرا، بردارسازی می باشد. این کار را با جایگزین کردن حلقه ها و عملکردهای عددی با عملکردهای برداری انجام می دهیم. در راهنمای بردارسازی شرکت Mathworks می توانید روش های متعدد بردارسازی برنامه را پیدا کنید. در برنامه بالا، یک حلقه کار محاسبه ی میانگین اختلاف مطلق بلوک ها را به عهده دارد. می توان با کاربرد تابع sum بجای این حلقه، این قسمت را بردارسازی نمود. این تغییر ساده سرعت اجرای کلی برنامه را دو برابر افزایش می دهد.

          کد:
          function cost = costFuncMAD(currentBlk,refBlk, n)
          
          % Non-vectorized code
          
          % err = 0;
          % for i = 1:n
          %  for j = 1:n
          %    err = err + abs((currentBlk(i,j) - refBlk(i,j)));
          %  end
          % end
          
          % Vectorized code
          
          err = sum(abs(currentBlk(:) - refBlk(:)));
          
          cost = err / (n*n);

          بردارسازی برای محاسبات آرایه ای که شامل استثناء در محاسبات نیستند، مناسب می باشد. به بیان دیگر هرگاه بخواهیم عمل محاسباتی ای را بدون وجود استثناء بر روی مجموعه ی بزرگی از داده ها اعمال کنیم، بهتر است از بردارسازی کمک بگیریم. بردارسازی بر روی الگوریتم هایی که شامل تعدادزیادی استثناء یا ساختارهای نامنظم هستند، خوب عمل نمی کند. استفاده از بردارسازی در این چنین محاسباتی موجب می شود که برنامه پیچیده تر شود و در نتیجه فهم، نگهداری و اشکال زدایی برنامه سخت تر گردد. در برخی شرایط ممکن است که استفاده از بردارسازی ممکن نباشد یا حتی استفاده از آن سرعت اجرای برنامه را به دلیل افزایش کاربرد حافظه کاهش دهد. در این شرایط باید حلقه ها و توابع را تبدیل به فایل های MEX نمود.

          فایل های MEXهمانند توابع داخلی MATLAB، فایل های کامپایل شده هستند. بنابراین بسیار سریع می باشند. کار با توابعی که بصورت فایل MEX در آمده اند بسیار ساده است. این توابع همانند دیگر توابع می توانند بطور مستقیم توسط MATLAB فراخوانده شوند.

          در MATLABمی توان با کاربرد دستور mex، فایل های MEX مبتنی بر C یا Fortran ایجاد کرد. درصورت استفاده از اینترفیس برنامه نویسی MEX (MEX API) کدهای C یا Fortran را باید به صورت دستی نوشت. توابع MEX قادرند ورودی را به طور مستقیم از MATLAB بخوانند، خروجی را به MATLAB بازگردانند و یا به متغیرهای سراسری دسترسی داشته باشند. MEX APIاین امکان را فراهم می کند که از hook در برنامه استفاده نمود. به کمک hook می توان برای استفاده از توابع مصور سازی و ... به MATLAB بازگشت. راهنمای MEX-file شرکت Mathworks اطلاعات بیشتری در مورد نوشتن فایل های MEX در اختیارتان قرار می دهد.

          پر واضح است که نوشتن فایل های MEX بطور دستی کاری وقت گیر است. از طرف دیگر احتمال اشتباه نیز زیاد است. برای تبدیل کدهای MATLAB به C یا Fortran چندین کار باید انجام شود. در مرحله اول باید الگوریتم برنامه تان را که شامل توابع MATLAB می باشد، پیاده سازی کنید. به این منظور می توانید کد های جدیدی بنویسید یا اینکه توابع و کتابخانه های موجود قبلی را فراخوانی کنید. درخلال نوشتن این کدها، باید با کاربرد روتین های مناسب مدیریت حافظه و تعریف متغیرهای داخلی عمل تخصیص حافظه را انجام دهید. در پایان باید بوسیله ی MEX API، کدها را با مدل MATLAB ارتباط دهید.

          اشکال زدایی فایل هایی MEX سخت است چرا که در اشکالگیر (debugger) زبان C یا Fortran هیچ کدام از توابع تحلیل و مصورسازی MATLAB در دسترس نیست. همچنین زبانهای C یا Fortran نسبت به خطاها و اشکالات به اندازه ی MATLAB حساس نیستند.

          راه ساده تری نیز وجود دارد و آن این است که که به طور اتوماتیک از طریق MATLAB فایل MEX را ایجاد کرد. به این ترتیب به طور کامل از محیط MATLAB به منظور اجرا و بهینه سازی برنامه تان بهره می گیرید. هر زمان که شما برنامه تان را تغییر دهید و آن را به فایل MEX تبدیل کنید، تغییرات اعمالی روی برنامه تان بر روی فایل MEX منعکس می گردد.

          با کاربرد فناوری مفسر بهینه ساز می توانید برنامه ی MATLAB را به فایل های پرسرعت MEX تفسیر نمایید. به این صورت برنامه ای که درMATLAB نوشته اید به طور داخلی به کد های واسطه ای C ترجمه می شود. توانایی تولید کد های C از MATLAB به شما تنها امکان تولید فایل های MEX را نمی دهد. بلکه با استفاده از آن می توانید مدلهای ANSI مبتنی بر Cایجاد کنید. این مدل ها بصورت مستقل اجرا می شوند.

          در برنامه ی مثال بالا، ایجاد فایل MEX موجب می شود برنامه بالاترین سرعت اجرا را داشته اشد. در مثال بالا، برنامه اصلی دارای زمان اجرای s 46، برنامه بااعمال روش بردارسازی دارای سرعت اجرای s 26 و برنامه ی فایل MEX دارای زمان اجرای s 2.7 می باشد. تصویر:



          تصویر بالا نشان می دهد گه چگونه فایل های MEX سرعت اجرای الگوریتم مثال بالا را تقریباً ده برابر افزایش داده است.

          درباره ی مولف:

          لوک سیمریا مدیر محصولات شرکت Catalytic می باشد. پیش از آن، پست هایی در شرکت Synopsys داشته است. موضوعات تحقیقی مورد علاقه ی وی شامل کامپایلرها، ابزار EDA، معماری کامپیوتر، و الگوریتم های DSP می باشد. او مدرک Ph.D خود را در مهندسی برق از دانشگاه استنفورد گرفته است. با استفاده از آدرس luc@catalyticinc.com می توانید با او تماس بگیرید.

          مشخصات مترجم

          مهدی پاشائی، دانشجوی مهندسی برق مقطع کارشناسی

          منبع: dspdesignline
          تو این دنیا فقط غیر ممکن،غیر ممکن است...

          دیدگاه


            #20
            پاسخ : آمـوزش پـردازش تـصـویـر

            نرم افزار آموزشی پردازش تصویر روی موبایل

            کاری از وبلاگ آمل روبوتیک
            www.amolrobotic.blogfa.com





            محتویات:

            ۱- مقدمه

            ۲-اصول اولیه پردازش تصویر

            ۳-پردازش تصویر رنگی

            ۴-خاکستری کردن تصویر

            ۵-اعمال حسابی روی تصویر

            ۶-میانگین گیری از تصویر

            ۷-هیستو گرام

            ۸-کشش تمایز

            ۹- لبه گیری

            ۱۰- ارتقای تصویر

            رمز: www.kavirelectronic.ir

            فایل های پیوست شده
            { خلاف قوانین - پاک شد }

            دیدگاه


              #21
              پاسخ : آمـوزش پـردازش تـصـویـر

              سلام .................

              فایل زیر در بردارنده ی دستورات متلب در حوزه ی پردازش تصویر هست که جناب بهازین {NASA_DE} زحمتش رو کشیدند .. جناب بهازین ممنونم ..
              فایل های پیوست شده
              دوستان! مدتی کمتر به سایت میام ..

              دیدگاه


                #22
                پاسخ : آمـوزش پـردازش تـصـویـر

                سلام .................

                دو فایل زیر در بردارنده ی نکاتی هست که میتونه برای شروع در محیط MATLAB بسیار مفید باشه .. فایل ها رو ضمیمه میکنم با این امید که بتونه برای دوستان مفید باشه .. موفق باشید ..
                فایل های پیوست شده
                دوستان! مدتی کمتر به سایت میام ..

                دیدگاه


                  #23
                  پاسخ : آمـوزش پـردازش تـصـویـر

                  سلام
                  من دانشجوی ترم آخر الکترونیک هستم و علاقمند به یادگیری مباحث پردازش تصویر هستم البته تا کنون هیچ واحد درسی در این زمینه نداشتم
                  استادان گرامی لطفا کمک بفرمایند و خط مشی صحیح حرکت در این زمینه را بیان کنند.
                  پردازش تصویر به چه مقدماتی نیاز دارد؟
                  باید از کجا و با چه منابعی شروع کرد تا به بیراهه نروم؟

                  دیدگاه


                    #24
                    پاسخ : آمـوزش پـردازش تـصـویـر

                    سلام ..............

                    خیلی کلی میشه اینطور عنوان کرد که .. سیگنال؛ ریاضیات؛ برنامه نویسی .. در مورد از کجا شروع کردن؛ من کتاب گونزالس رو پیشنهاد میدن (ادیشن سوم اون هم توی بازار هست امــا با دومش تفاوت چندانی نداره ..) خوندن این کتاب دید بسیار جالبی رو در ذهن ایجاد میکنه .. موفق باشید ..
                    دوستان! مدتی کمتر به سایت میام ..

                    دیدگاه


                      #25
                      پاسخ : آمـوزش پـردازش تـصـویـر

                      سلام ..

                      مدتی بود که میخواستم این فایل هارو پلود کنم امــا مدام کار پیش میومد و فرصت نمیشد .. این فایل ها اصول برنامه نویسی توی محیط متلب رو از ابتدا توضیح داده و رفته جلو ؛ اونهم کاملا کاربردی و با مثال .. خوبی خیلی متفاوتی که این فایل ها داره اینه که اولا اصول آموزش کاملا پایه ای و Course Base هست و نکته ی مهم دیگه هم اینکه فایل های RAR در بر دارنده ی برنامه های توی متن های PDF هست .. در کل؛ به نظرم این فایل ها یکی از بهترین منابعی هست که میشه برای برنامه نویسی توی متلب بهشون تکیه کرد و روی متد اونا جلو رفت .. هم مفید؛ هم خلاصه؛ هم معتبر و هم کامل .. من خودم از این فایل ها خیلی استفاده کردم و حیفم اومد که این استفاده رو با دیگران تقسیم نکنم .. امیدوارم که این استفاده متقابل باشه و شما هم بتونید از اونها بهره ببرید .. موفق و سلامت و شاد باشید .. (فایل ها در قالب یک فایل RAR ضمیمه ی دوباره گردید)


                      MATLAB Coding and Programming
                      فایل های پیوست شده
                      دوستان! مدتی کمتر به سایت میام ..

                      دیدگاه


                        #26
                        پاسخ : آمـوزش پـردازش تـصـویـر

                        سلام ..

                        فایل های زیر؛ یه فایل PDF بسیار کامل از مباحث پردازش تصویر به همراه مثال و برنامه و دستورات و کدهای مرتبط ( در محیط متلب) هست .. در واقع یه نوع نگاه کاربردی به کتاب گونزالس هست که بسیار بسیار برای یادگیری پردازش تصویر مفید و ارزشمنده .. مدتی بود که میخواستم این فایل رو پلود کنم امــا فرصت نمیشد .. امیدوارم دوستانی که علاقمند به یادگیری پردازش تصویر هستن؛ بتونن از این فایل استفاده کنن .. هم مفید؛ هم کامل و هم کاربردی .. انشاالله که مورد استفاده ی همگی قرار بگیره .. موفق و سلامت و شاد باشید .. (فایل در قالب یک فایل PDF ضمیمه ی دوباره گردید)


                        Digital Image Processing With MATLAB
                        فایل های پیوست شده
                        دوستان! مدتی کمتر به سایت میام ..

                        دیدگاه


                          #27
                          پاسخ : آمـوزش پـردازش تـصـویـر

                          سلام خدمت دوستان
                          من سعی می کنم با کمک دوستان مثال های ساده ای از پردازش تصویر رو که به کمک متلب نوشتیم براتون بذارم.
                          تا جاییکه بشه توضیحات هم داده میشه تا مشکلی نباشه.
                          امیدوارم مفید باشه و مورد توجه دوستان قرار بگیره!
                          It's nice to be important but it's important to be nice!

                          از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                          دیدگاه


                            #28
                            پاسخ : آمـوزش پـردازش تـصـویـر

                            اول چند تا تعریف هستند که بهتره همین اول گفته بشه:

                            تصویر RGB : تصاویر رنگی رو RGB میگیم که از سه ماتریس N*M تشکیل شده که به ترتیب : قرمز (RED) ، سبز (GREEN) و آبی (BLUE)

                            تصویر GRAY-SCALE : از یک ماتریس N*M تشکیل شده که رنگها در بازه سیاه و سفید هستند و مقادیر بین این دو تغییر میکنند. به زبان ساده تر تصویر همان تصویری که در تلوزیون های سیاه و سفید پخش میشد.( مقادیر درایه ها بین 0 تا 255 است البته اگر مقادیر نرمال باشد اعداد اعشاری بین 0 و 1 خواهند بود)

                            تصویر B&W : این تصویر هم از یک ماتریس M*N تشکیل شده که فقط شامل رنگ سیاه و سفید هست. ( مقادیر درایه ها 0 یا 1 است)

                            ماتریس تصویر: ماتریسی که تعریف می شود تا مشخصات رنگ هر پیکسل در درایه نظیر قرار بگیرد. می توان با اعمال تغییر در درایه ها تغییرات مورد نظر را بر روی تصاویر پیاده کرد.

                            نمودار هیستوگرام: نموداری که نشان می دهد در یک تصویر به چه تعداد از هر رنگ وجود دارد.

                            لبه تصویر : محلی که تصویر در آنجا تغییر ناگهانی دارد.

                            مشتق گیری: در پردازش مشتق گیری باعث آشکار شدن لبه ها و جزئیات می شود.

                            انتگرال یا میانگین : باعث محو شدن و از بین رفتن جزئیات تصویر و لبه ها می شود.
                            It's nice to be important but it's important to be nice!

                            از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                            دیدگاه


                              #29
                              پاسخ : آمـوزش پـردازش تـصـویـر

                              برای شروع عکس ضمیمه رو داون کنید تا با هم جلو بریم:

                              برای اینکه بهتر متوجه تاثیر دستورها بشید یک mfile جدید بسازید و کد زیر رو کپی کنید توش و بعد مکان نما رو در سطر اول قرار بدید. حالا دکمه F12 رو بزنید تا در سطر اول یک BREAKPOINT ایجاد بشه تا دستورات یک جا اجرا نشند و بعد F5 رو بزنید تا برنامه RUN بشه. حالا هر دفعه که F10 رو میزنید یک سطر اجرا میشه.


                              مثال اول:
                              تبدیل عکس GRAY SCALE به BW

                              برای اینکار یک حد یا تریشهلد میگیریم و پیکسل های با مقدار بزرگتر از اون رو صفر و مقادیر کوچکتر رو به 1 تبدیل می کنیم.
                              توجه کنید که در حوزه GRAY SCALE عدد صفر معادل سیاه و عدد 255 معادل سفید هست و در BW هم به ترتیب 0 و 1 این مقادیر رو دارند.

                              برنامه به این شکل خواهد بود:

                              کد:
                              o=imread('eye2.tif');
                              imshow(o);
                              imhist(o);
                              for i=(1:600)
                                for j=(1:600)
                                  if o(i,j)<125
                                    l(i,j)=0;
                                  else
                                    l(i,j)=1;
                                  end
                                end
                              end
                              
                              imshow(l);
                              imhist(l);

                              1- این دستور باعث میشه عکس ما داخل ماتریس o ذخیره بشه.
                              2- این دستور باعث نمایش عکس ذخیره شده در ماتریس o می شود.
                              3-این دستور باعث نمایش هیستوگرام عکس میشه.
                              4و5 - دو حلقه تو در تو برای حرکت داخل ماتریس
                              6- شرط برای تبدیل مقادیر 125 به پایین به مقدار 0 و تبدیل مقادیر بیشتر از 125 با 1
                              7- قرار دادن مقدیر جدید در ماتریس L
                              8- نشان دادن تصویر ماتریس L
                              9- نشان دادن هیستوگرام L

                              موفق باشید!
                              فایل های پیوست شده
                              It's nice to be important but it's important to be nice!

                              از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                              دیدگاه


                                #30
                                پاسخ : آمـوزش پـردازش تـصـویـر

                                مثال دوم:

                                تبدیل عکس RGB به GRAY-SCALE

                                همونطور که قبلا گفتم عکس RGB از سه ماتریس M*N تشکلی شده که برای دسترسی بهشون می نویسیم:

                                R=O(:,:,1)
                                G=O(:,:,2)
                                B=O(:,:,3)

                                K
                                هر کدام از این ماتریس ها به صورت جدا که نشان داده شوند GRAY-SCALE خواهند بود برای بهتر شدن کار می توان از درایه های ماتریس ها میانگین گرفت:
                                برای این برنامه داریم:

                                کد:
                                o=imread('eye.jpg');
                                imshow(o);
                                r=o(:,:,1);
                                g=o(:,:,2);
                                b=o(:,:,3);
                                
                                for i=(1:600)
                                  for j=(1:600)
                                    s(i,j)=(r(i,j)+g(i,j)+b(i,j))/3;
                                  end
                                end
                                imshow(s);

                                k

                                خوب به غیر از روش بالا می توان از دستور RGB2GRAY متلب هم برای این کار استفاده کرد چون متلب مولفه های دیگر رو هم مد نظر میگیره کیفیت بسیار بهتری از کار ما خواهد داشت پس فقط کافیه عکس رو بخونید و بعد دستور زیر رو بنویسید:

                                k=rgb2gray(o);

                                d

                                برای امتحان عکس زیر را دانلود کنید.و در پوشه ای که mfile رو توش ذخیره می کنید قرار بدید. حالا اجرا کنید تا نتیجه رو ببینید!
                                فایل های پیوست شده
                                It's nice to be important but it's important to be nice!

                                از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                                دیدگاه

                                لطفا صبر کنید...
                                X