برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی

برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

داده هایی در مورد برق، الکترونیک، الکتروتکنیک، مکاترونیک، پزشکی، کشاورزی و

تبلیغات
آخرین نظرات

۱۱ مطلب با موضوع «نرم افزار :: Matlab» ثبت شده است

کنترل کننده PID

ShahBaz | سه شنبه, ۱ اسفند ۱۳۹۶، ۱۱:۰۴ ب.ظ

کنترل کننده PID

در بسیاری از فرآیندهای صنعتی از کنترل کننده تناسبی ‪ P‬ یا تناسبی مشتق گیر ‪ ،PD‬تناسبی‬‫انتگرال گیر ‪ PI‬ و یا کنترل کننده تناسبی– مشتق گیر– انتگرال گیر ‪ ،PID‬به عنوان ساختار‬‫اصلی کنترل کننده استفاده می شود.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬ ‫هدف از استفاده از حلقه فیدبک و کنترل کننده را می توان بصورت زیر خلاصه کرد:

  • ‫پایداری داخلی‬ ‫

  • دنباله روی از فرمان ورودی (‪(tracking‬‬ ‫

  • تضعیف اغتشاش‬

  • ‫کاهش نویز‬ ‫

  • عدم حساسیت به تغییرات فرآیند‬ ‫

جالب است که تقریبا در کلیه فرآیندهای صنعتی ساختار ساده کنترل کننده ‪ PID‬ تمام‬‫نیازهای فوق را برآورده می سازد. حتی در برخی از موارد کنترل کننده ‪ PI‬ نیز کافی است. در‬‫حالت کلی می توان بیان کرد که کنترل کننده ‪ PI‬ برای فرآیندهایی که برای سیستمهایی که با‬‫مدل درجه یک تقریب زده می شوند، کافی است. ‫در برخی موارد کنترل کننده ‪ PID‬ کافی نمی باشد. این موارد را می توان به صورت زیر خلاصه‬‫ نمود :‬

  • ‫فرآیندهای با دینامیک رتبه بالاتر از دو‬

  • ‫سیستمهای با تأخیر زیاد‬ ‫

  • سیستمهای دارای صفر ناپایدار یا سیستمهای غیر مینیمم فاز‬

  • ‫حذف فرکانسهای خاص در خروجی (فیلتر ناچ ‪(Notch filter‬‬

در این مقاله ساختار یک کنترل کننده PID و اثر هر یک از پارامترهای آن بر پاسخ خروجی بررسی می شود. فرآیند کنترل شده مطابق مدار حلقه بسته زیر را در نظر بگیرید:‬

feedback_block کنترل کننده PID ‬ ‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

خروجی کنترل کننده PID بصورت زیر می باشد:

1

‫متغییر e که نشان دهنده خطای ردیابی است، تفاوت میان مقدار خواسته شده (r) و مقدار واقعی خروجی(y) می باشد.سیگنال خطا وارد کنترل کننده می شود و مقدار مشتق و انتگرال آن محاسبه می شود و سپس سیگنال کنترلی u با ضریبی از سیگنال خطا (kp)،ضریبی از انتگرال خطا (ki)و ضریبی از مشتق خطا (kd) محاسبه می شود. کنترل کننده ‪ PID‬ از جمع‬ ‫سه ترم تشکیل شده است:

  • ‫ترم تناسبی ‪ : P‬که فرمان کنترل متناسب با میزان خطا و با بهره ‪ kp‬تقویت می شود.‬
  • ‫ترم مشتق گیر ‪ : D‬که فرمان کنترل متناسب با نرخ تغییرات خطا و با بهره ‪ kd‬تقویت می شود.‬
  • ترم انتگرال گیر ‪ : I‬فرمان کنترل متناسب با ‬‫انتگرال این تابع و با بهره ‪ ki‬تقویت می شود.‬

تابع انتقال کنترل کننده PID بصورت زیر می باشد:

کنترل کننده PID آموزش تخصصی سمولینک

در نرم افزار Matlab تابع انتقال کنترل کننده را می توان  بصورت مستقیم تعریف کرد:

Kp = 1;
Ki = 1;
Kd = 1;

s = tf('s');
C = Kp + Ki/s + Kd*s

همچنین می توان از دستورpid نیز استفاده کرد:

C = pid(Kp,Ki,Kd)

حال اجازه دهید تاثیر هریک از این پارامترها را بر پاسخ سیستم توضیح دهیم.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬ بهره تناسبی (kp) باعث کاهش زمان rise time شده ولی خطای دائم را از بین نمی برد. بهره انتگرال گیر (ki) خطای دائم را به ازای ورودی پله از بین می برد ولی باعث کند شدن پاسخ سیستم می شود. بهره مشتق گیر (kd) باعث کم شدن overshoot ، افزایش پایداری و همچنین سریعتر شدن پاسخ سیستم می شود. تاثیر هریک از پارامترهای کنترل کننده را بصورت خلاصه در جدول زیر می توان مشاهده کرد:

CL RESPONSE

RISE TIME

OVERSHOOT

SETTLING TIME

S-S ERROR

Kp

Decrease

Increase

Small Change

Decrease

Ki

Decrease

Increase

Increase

Eliminate

Kd

Small Change

Decrease Decrease

No Change

 

توجه داشته باشید که جدول بالا دقیقا صحیح نیست چون پارامترها به یکدیگر وابسته اند و ممکن است با تغییر یکی تاثیر دیگری نیز تغییر کند.

مثال: فرض کنید تابع انتقالی بصورت زیر داشته باشیم:

آموزش صفر تا صد Matlab کنترل کننده PID

با دستور زیر پاسخ حلقه باز سیستم را به ورودی پله رسم می کنیم:

s = tf('s');
P = 1/(s^2 + 10*s + 20);
step(P)

 

Introduction_ControlPID_01

 

 

همان طور که مشخص است، خطای حالت دائم 0.95 و همچنین سیستم بسیار کند است.

کنترل کننده تناسبی:

همان طور که جدول بالا نشان می دهد، ترم تناسبی باعث کاهش rise time، افزایش overshoot و کاهش خطای حالت دائم می شود.تابع انتقال حلقه بسته سیستم بالا با ترم تناسبی بصورت زیر است:

کنترل کننده PID

با قرار دادن ترم تناسبی برابر 300 با دستور زیر پاسخ حلقه بسته سیستم را به ورودی پله رسم می کنیم:

Kp = 300;
C = pid(Kp)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

 

Introduction_ControlPID_02

همان طور که شکل بالا نشان می دهد، ترم تناسبی باعث کاهش rise time، افزایش overshoot و کاهش خطای حالت دائم شده است.

کنترل کننده تناسبی- مشتق گیر:

حال بیایید نگاهی به کنترل کننده PD بیاندازیم.همان طور که دیدیم ترم مشتق گیر باعث کاهش overshoot و همچنین settling time می شود. تابع انتقال حلقه بسته سیستم بالا با ترم PD بصورت زیر است:

شبیه سازی مقاله متلب

با قرار دادن ترم تناسبی برابر 300 و ترم مشتق گیر برابر 10 با دستور زیر پاسخ حلقه بسته سیستم را به ورودی پله رسم می کنیم:

Kp = 300;
Kd = 10;
C = pid(Kp,0,Kd)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

 

Introduction_ControlPID_03

همان طور که مشخص است ترم مشتق گیر باعث کاهش overshoot و همچنین settling time شده است و همچنین تاثیر کمی بر rise time و خطای حالت دائم داشته است.

کنترل کننده تناسبی-انتگرال گیر- مشتق گیر:

تابع انتقال حلقه بسته سیستم بالا با ترم PID بصورت زیر است:

6

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

Kp = 350;
Ki = 300;
Kd = 50;
C = pid(Kp,Ki,Kd)
T = feedback(C*P,1);

t = 0:0.01:2;
step(T,t)

 

Introduction_ControlPID_04

همان طور که مشخص است پاسخ هیچ overshoot و خطای حالت دائمی ندارد و همچنین دارای rise time سریعی می باشد. نرم افزار Matlab دارای ابزاری بنام pidtool می باشد که خیلی راحت می توان یک کنترل کننده PID را بصورت گرافیکی تنظیم کرد.با دستور زیر که پارامتر اول آن تابع انتقال سیستم و پارامتر دوم نوع کنترل کننده را مشخص می کند،می توان وارد محیط PID Tuner شد:

pidtool(P,C)

 

pid-tuner

1)در این قسمت نوع طراحی مشخص می شود(براساس زمان پاسخ یا بر اساس پهنای باند و…)

2)در این قسمت نوع کنترل کننده مشخص می شود.

3)در این قسمت نمایش پاسخ در محدوده زمان یا در محدوده فرکانس(Bode) مشخص می شود.

4)در این قسمت منحنی انتخاب می شود.

5)در این قسمت مقادیر پارامترهای کنترل کننده مشخص می شود.

6)در این قسمت مشخصات پاسخ دیده می شود.(مقدار overshoot،rise time و…)

  • ShahBaz

حلقه for در متلب

ShahBaz | دوشنبه, ۳۰ بهمن ۱۳۹۶، ۱۲:۰۵ ق.ظ

حلقه for در متلب

حلقه for در نرم افزار متلب ( matlab ) بیانگر تعداد تکرار دستورات به اندازه و گام حرکتی مشخص است ، ساختار کلی این حلقه در نرم افزار متلب بفرم زیر است

for  (parameter name)=initial : increament : final

     (  دستور یا فرمولهای محاسباتی )

end

مثال :

فرض کنید میخواهیم مقدار سینوس را در بازه 0 تا 2pi با گام 0.1pi  در نرم افزار متلب محاسبه کرده و در ماتریس سطری y ذخیره نمائیم و سپس نمودار مربوطه را ترسیم کنیم :

حل : یک m-file در نرم افزار مطلب باز کرده و برنامه زیر را در آن تایپ کنید :

clc;

clear all;

i=0;

for k=0:0.1*pi:2*pi

    i=i+1

    y(1,i)=sin(k);

    x(1,i)=k

end

plot(x,y,'b','linewidth',2)

axis([0 2*pi -2 2])

grid on

box off

legend('sin(x)')

قبل از اینکه برنامه را در مطلب اجرا کنید نکاتی راجع به آن توضیح میدهیم

همانگونه که از ساختار حلقه for  مشاهده می شود بعد از نوشتن این تابع در جلو این تابع با حداقل یک کاراکتر فاصله ( یا  بیشتر )  نام متغیر دلخواه مانند k نوشته می شود این متغیر لازم نیست حتما در دستورات داخل حلقه بکار رود بلکه مفهوم آن به عنوان یک پارامتر برای اینکه چند بار دستورات داخل حلقه اجرا شوند که در برنامه فوق تعداد تکرار 21 بار می باشد .

حال ساختاربرنامه فوق طوری است که از همین متغیر k برای سرعت بخشیدن به محاسبات نیز توانستیم استفاده نمائیم ، در داخل حلقه ازیک عبارت i=i+1 که در خارج از حلقه i=0 قرار داده ایم استفاده کرده ایم که شاید یرایتان مبهم باشد ، اصطلاحا به اینگونه متغیرها ، شماره انداز گفته می شود  .

نحوه عملکرد شماره انداز بدین صورت است که در حالت اول که i=0 فرض شده وارد حلقه می شویم و مقدار i بفرم i=i+1=0+1=1 تغیر می ابد ، پس در اولین اجرای حلقه i=1 شد ، در اجرای دوم حلقه مقدار جدید iدر رابطه قرار داده می شود و لذا i=i+1=1+1=2 و درنتیجه در اجرای دوم i=2 شد به همین ترتیب با هربار اجرای حلقه مقدار i به اندازه یک واحد ( میتوانید به دلخواه افزایش آنرا تغییر دهید )  افزایش پیدا می کند تفکر ایجاد شماره انداز شاید در ظاهر امری ساده و بیهوده به نظر برسد ولی در بسیاری از برنامه ها کاربرد آن را خواهید دید ، مثلا در برنامه فوق برای ایجاد شماره ستونهای ماتریس yو x مورد استفاده قرار گرفته است .

دستورات دیگر از حلقه for در نرم افزار مطلب ( matlab ) دستورات ترسیم دو بعدی می باشند که در قسمت مربوطه به طور مفصل شرح داده خواهد شد ، بعد از اجرای برنامه در نرم افزار متلب خروجی برنامه شما بصورت زیر خواهد بود :

   شما می توانید چندین حلقه for   را که نیاز داشتید بصورت تو در تو بکار ببرید ، البته نحوه اجرا بدین صورت خواهد بود که بعد از هر بار اجرای کامل حلقه داخلی حلقه خارجی فقط یکبار اجرا خواهد شد :

for i=1:5

    for j=1:3

        a(i,j)=2*j-i;

    end

end

نحوه عملکرد برنامه فوق را شرح میدهیم :

    

خروجی برنامه فوق ماتریس a را بفرم زیر مشاهده خواهید کرد :

a =

 

     1     3     5

     0     2     4

    -1     1     3

 ساده ترین تصوری که میتوان از عملکرد حلقه های تو در تو بیان کرد همانند عملکرد عقربه های ثانیه شمار و دقیقه شمار و ساعت شمار است که میتوان آنرا مشابه سه حلقه تو در تو دانست که به ازاء هربار اجرای داخلی ترین حلقه ( ثانیه شمار) حلقه خارجی آن یک گام به جلو ( دقیقه شمار) و به ازای هریار اجرای کامل این حلقه ( دقیقه شمار) حلقه خارجی آن( ساعت شمار یک گام ) به جلوتر میرود  :

     مثال ااز سه حلقه تو در توی for  در متلب:

 

F{1,1} = [1 2; 3 4];

F{1,2} = [-1 0; 0 1];

F{2,1} = [7 8; 4 1];

F{2,2} = [4i 3+2i; 1-8i 5];

 

for k = 1:4

   for m = 1:2

      for n = 1:2

         NUM(m,n,k) = F{k}(m,n);

      end

   end

end

  • ShahBaz

واژه نامه گرافیک و پردازش تصویر

ShahBaz | يكشنبه, ۱۰ آبان ۱۳۹۴، ۰۹:۵۵ ب.ظ

واژه نامه گرافیک( قسمت اول )
احسان کامرانی ( استفاده از این مقاله با ذکر نام نویسنده و منبع بلا مانع است )توجه: تصاویر این مقاله در آلبوم تصاویر قرار دارد .

مقدمه
دراین سری از مقالات قصد دارم تا به بررسی مفاهیم اولیه گرافیک و تکنیکهای پرکاربرد گرافیکی مورد استفاده در بازیهای رایانه ای بپردازم. مفاهیم و تکنیکهای معرفی شده دراین مقالات، تنها به بازیهای رایانه ای محدود نمی شوند. به عنوان مثال هنگام کار با نرم افزارهایی نظیر 3DS Max یا فتوشاپ نیز به بسیاری از این واژه ها برخورد می کنید. مفاهیم معرفی شده در این مقاله ، به ترتیب حروف الفبا تعیین نشده اند.

رنگ
مفهوم رنگ در گرافیک کامپیوتری بارنگ در دنیای واقعی متفاوت است. به عنوان مثال اگر دردنیای حقیقی سه رنگ سبز، قرمز و آبی را بایکدیگر داخل کنید رنگ قهوه ای لجنی بدست می آید؛ درحالی که ترکیب این سه رنگ در کامپیوتر، باعث ایجاد رنگ سفید می شود. علت این امر آنست که رنگها در کامپیوتر اثر یکدیگر را خنثی می کنند؛ درحالی که در نقاشی دستی، رنگها با یکدیگر ترکیب می شوند.رنگهای اصلی درجهان حقیقی عبارتند از قرمز، زرد و آبی. این وضع در مورد رنگهای اصلی بکار رفته در کامپیوتر صادق نیست. در گرافیک کامپیوتری رنگهای اصلی عبارتند از قرمز، سبز و آبی. این سه رنگ به سه تایی های  RGB معروف هستند. در گذشته از پالتهای رنگ به جای سه تایی های RGB استفاده می شد. پالتها شامل 256 رنگ بودند. با پیشرفت تکنولوژی، سه تایی های RGB جایگزین پالتها شدند و به دلیل افزایش وسعت طیف رنگها( 16 یا 32 میلیون رنگ)، منجر به افزایش قابل ملاحظه ای در کیفیت گرافیک کامپیوتری شدند. رنگهای تصویر1 ، از ترکیب سه تایی های RGB پدید آمده اند.

پیکسل
کوچکترین واحد برای پردازش گرافیک است. هر پیکسل، یک مربع مستطیل بسیار کوچک است که شامل اطلاعاتی نظیر عمق، رنگ، آلفا و... می باشد (برای اطلاعات بیشتر در مورد این سه اصطلاح، قسمتهای رنگ ، بافر عمق، کانال آلفا و درهم آمیزی آلفا را ملاحظه کنید). هرگاه می گوییم دقت صفحه یک بازی برابر 600× 800 است در واقع بیان می کنیم که این تصویر دارای 240000 =600×800 پیکسل است. افزایش تعداد پیکسلها (بالارفتن دقت صفحه نمایش)، نیازمند پردازش بیشتری است. به علاوه کارتهای گرافیکی و مانیتورها در نمایش تعداد پیکسلها دارای محدودیتهایی هستند. برای تعیین بیشترین میزان دقت پشتیبانی شده توسط مانیتور یا کارت گرافیکی، دفترچه مربوط به مانیتور و کارت گرافیکی خود را مطالعه کنید.

مانتیور گرافیکی(Graphics monitor)
مانیتورهای مورد استفاده در سیستمهای خانگی، مانیتورهای گرافیکی هستند. سطح داخلی صفحه مانیتورها، دارای یک سری سلولهاست که به رنگهای قرمز، سبز و آبی حساسند. همچنین هر مانیتور، دارای سطرهای افقی است که با دقت در مانیتور می توانید آنها را ملاحظه کنید. در داخل مانیتور، یک تفنگ الکترونیکی وجود دارد که با حرکت خود منجر به نوشتن داده های تصویری در روی سطح داخل صفحه مانیتور می شود. نوشتن داده های تصویر در مانیتور از چپ به راست و از بالا به پایین صورت می گیرد. به این صورت که تفنگ الکترونیکی از گوشه بالایی سمت چپ مانیتور کار خود را آغاز کرده و پس از تاباندن اشعه به سلولهای سطر اول، به سطر دوم مانیتور رفته وهمین کار را تا سطر آخر ادامه  می دهد. سپس تفنگ الکترونیکی دوباره به سطر اول رفته و این روند راتکرار می کند. به این عمل، احیای تصویر (Refresh ) می گوییم.

نرخ احیاء(Refresh Rate)
به تعداد دفعات احیای تصویر در مانیتور، نرخ احیا (Refresh Rate) می گوییم. مفهوم نرخ احیا با مفهوم نرخ فریم (frame Rate) متفاوت است.

نرخ فریم (Frame Rate)
در داخل کارتهای گرافیکی بافری به نام بافر اصلی (Frame Buffer) وجوددارد. غالبا این بافر شامل بافر جلویی و بافر عقبی می باشد. البته درکارتهای گرافیکی جدید این بافر شامل یک بافر جلویی و دو بافر عقبی می باشد. اطلاعات تصویری، برای تعداد دفعاتی که به قدرت پردازش کارت گرافیکی وابسته است در بافر عقبی نوشته می شوند. در هر بار نوشته شدن اطلاعات دربافر عقبی، داده های بافر عقبی در بافر جلویی نوشته می شوند. این بافر جلویی شامل همان اطلاعاتی است که شما در صفحه نمایش خود می بینید. هر چه جلوه های ویژه صحنه ها بیشتر باشد کارت گرافیکی به پردازش بیشتری نیازمند است. از این رو برخی کارتهای گرافیکی نمی توانند صحنه ها رابا سرعت لازم پردازش کنند و لذا تصویر مشاهده شده، به صورت تکه تکه خواهد بود. نرخ فریم 60FPS یک نرخ فریم قابل قبول است. این بدان معناست که کارت گرافیکی می تواند داده ها را به تعداد 60 بار در هر ثانیه در بافر اصلی بنویسید. این به این معنا نیست که مانیتور شما نیز داده ها را به تعداد 60 بار در ثانیه احیا می کند. تعداد دفعات احیای تصویر در مانیتور به فرکانس  مانیتور بستگی دارد. به عنوان مثال منظور از فرکانس 85 Hz  آنست که مانیتورمی تواند در هر ثانیه تصویر را به تعداد 85 بار بازنویسی کند( با استفاده حرکتهای متوالی تفنگ الکترونیکی). از اینرو ممکن است نرخ فریم و نرخ احیا با یکدیگر برابر نباشند. به عنوان مثال اگر نرخ فریم از نرخ احیا کمتر باشد مانیتور، یک تصویر موجود در بافر گرافیکی را برای بیشتر از یک بار احیا می کند. به علاوه ممکن است نرخ احیای مانیتور کمتر از نرخ فریم باشد. این وضع زمانی رخ می دهد که فرکانس مانیتور کمتر از نرخ فریم باشد. به عنوان مثال فرض کنید نرخ احیای مانیتور برابر 60Hz است. دراین حالت اگر کارت گرافیکی بتواند داده های تصویر را برای بیش از 60 بار در بافر بنویسید، نرخ احیای مانیتور، آن را به 60 بار محدود می کند. پس به عنوان یک قانون کلی نرخ احیای مانیتور ممکن است باعث محدود شدن نرخ فریم شود؛ ولی نرخ فریم نمی تواند باعث محدود شدن نرخ احیای مانیتور شود.

کانال آلفا
درکنار سه رنگ RGB ، گهگاه کانالی به نام کانال آلفا قرار می گیرد. دراین حالت سه تایی RGB ، تبدیل به چهار تایی RGBA می شود. برخلاف رنگهای قرمز، سبز و آبی، کانال آلفا یک رنگ نیست؛ بلکه یک کانال تضعیف کننده رنگ است. کانال آلفا برای شفاف سازی تصاویر وگهگاهی حذف قسمتهایی از تصویر بکار می رود. یکی از کاربردهای کانال آلفا ، شبیه سازی درختان به صورت تصاویر دو بعدی است. به عنوان مثال درخت تصویر 2 را در نظر بگیرید. با استفاده از کانال آلفا می توان قسمت سیاه را حذف کرده و درختها را نظیر تصویر3 در بازی بکار برد. به این صورت که قسمتهایی از تصویر 2 که دارای رنگ سیاه است دارای کانال آلفای 0 و قسمتهای دیگر دارای کانال آلفای 1 خواهند بود. قسمتهایی از این تصویر که دارای کانال 0 هستند (قسمتهای سیاه) ترسیم نخواهندشد. از اینرو فقط عکس درخت در بازی دیده میشود و نه نواحی سیاه اطراف آن. از دیگر کاربردهای این کانال می توان به شبیه سازی دوربین در بازیهای جنگی اشاره نمود. در این حالت کانال آلفا یک ماسک است که منجر به نمایش قسمتی از صحنه و عدم نمایش قسمتی از صحنه می شود( تصویر 4 ). یکی دیگر از کاربردهای عمومی کانال آلفا، ایجاد اشیای نیمه شفاف نظیر پنجره ها، شیشه ها و ... است. در این حالت برای ایجاد یک شی نیمه شفاف ، کانال آلفای آن را در یک مقدار میانی تعیین می کنند. در تصویر 5 برای شفاف سازی نور اطراف چراغها از کانال آلفا استفاده شده است.

درهم آمیزی آلفا(Alpha blending)
درهم آمیزی آلفا به معنای شفاف سازی یک تصویر و سپس در هم آمیختن رنگهای آن باصحنه است. به عنوان مثال فرض کنید که درحال اجرای بازی هستید و کلید ESC را می فشارید. این عمل باعث ایجاد یک منو می شود. اغلب منوها حالت شفاف دارند؛ به این معنا که یک صحنه محورا در زیر این منو می بینید. این شفاف سازی به Alpha blending موسوم است.
درهم آمیزی آلفا در ایجاد اشیای نیم شفاف نظیر پنجره ها، شیشه ها، آب درون استخر ، منوها و... بسیار کاربرد دارد. در تصویر 6 از کانال آلفا برای شفاف سازی قوری استفاده شده است.  تصویر 7 از بازی Nfs Underground نیز به نمایش یک منوی نیمه شفاف می پردازد.

در هم آمیزی
درهم آمیزی بدون کانال آلفا نیز امکان پذیر است. در این حالت رنگ یک صحنه با رنگ صحنه دیگر ادغام می شود. عمل در هم آمیزی دو صحنه، به صورت پیکسل به پیکسل صورت می گیرد. بدین معنا که رنگ های قرمز، سبزو آبی از هر پیکسل یک صحنه، با رنگهای قرمز، سبز و آبی پیکسل متناظر صحنه دیگر ترکیب می شوند. تصویر 8 که مربوط به بازی Delta Force است برای ایجادیک دوربین ماورای بنفش، از درهم آمیزی استفاده کرده است. بدین صورت که یک رنگ سبز به صحنه تیره اضافه شده وبه قسمتهای بیرون دایره ،رنگی اضافه نشده است. بنابراین قسمتهای بیرون دایره تیرگی خود را حفظ کرده اند.

نور
نور ،یک عنصر بسیار مهم در بازیهای رایانه ای وگرافیک کامپیوتری است. یک نورپردازی خوب می تواند یک صحنه بد را بسیار زیباتر کند ویک نورپردازی بد می تواند زیباترین صحنه ها را به زشت ترین مناظر تبدیل کند. در محیطهای گرافیکی از نورهای متفاوتی استفاده می شود: نورهای واقعی، نورهای شبیه سازی شده توسط رنگها، نگاشت نور( light map) و... .منظور از نورهای واقعی همان نورهایی هستند که در محیط واقعی با آنها سروکار داریم .OpenGL  برای شبیه سازی نورهای واقعی از مدل فنگ استفاده می کند. در OpenGL  حداکثر می توان هشت منبع نور را تعریف کرد. نورها می توانند دارای رنگهای متفاوتی باشند. تصویر9 چند نور با رنگهای مختلف را در یک اتاق نشان می دهد. منظور از انواع مختلف نور واقعی آنست که هر منبع نور می تواند به صورت یکی از این انواع یا ترکیبی از آنها باشد. مثلا یک لامپ می تواند هم یک منبع نور پخشی وهم یک منبع نور انعکاسی باشد. در ذیل انواع مختلف منابع حقیقی نور را ملاحظه می کنید. 
الف)نور محیطی: این نور میزان روشنایی کل محیط را تعیین می کند. برای تصور این مطلب مکعبی را در نظر بگیرید که در اطراف آن لامپهای بسیاری قرار گرفته است. کل این سطوح مکعب به طور یکنواخت روشن می شوند و از اینرو جهت سطح مکعب تاثیری در میزان روشنایی آن ندارد. یک نور محیطی هیچ سایه ای را ایجاد نمی کند. کل اشیا به طور یکنواخت روشن می شوند .معمولا دربازیها، یک نور محیطی با میزان روشنایی دلخواه قرار داده می شود که می تواند کل محیط را به طور یکنواخت و به میزان خاصی روشن کند .در تصویر 10 منبع نور از پنجره به اتاق می تابد. قسمتهایی از مبلها که نور به آنها برخورد نمی کند به رنگ خاکستری هستند. قسمتهایی که نور به آنها برخورد می کند به رنگ زرد درآمده اند. قسمتهای خاکستری، در واقع نور محیطی هستند( وجه رو به دوربین درتصویر 10 ).
ب)نور پخشی: نوری است که از جهت خاصی به اشیاء می تابد. به عنوان مثال یک لامپ در داخل یک اتاق، یک نور پخشی است. خورشید نیز که به زمین می تابد و قسمتی از زمین را روشن می کند نیز یک نورپخشی است. دراین حالت جهت برخورد پرتوها و نحوه قرارگیری سطوح، در میزان روشن شدن سطوح تاثیر دارد. در تصویر 10 ، منبع نوری که از پنجره به اتاق می تابد، یک منبع نور پخشی است. همانطور که ملاحظه می کنید، جهت سطوح مبلها و دیوارها درمیزان روشن شدن آنها تاثیر گذاشته است.
ج)نور انعکاسی : یک نور بسیار قوی است که به سطح اشیاء می تابد. دراین حالت قسمتی از اشیاء بسته به میزان صیقلی بودن آنها به میزان خاصی برق می زنند. از اینرو یک شی آهنی که نور انعکاسی به آن برخورد می کند بیشتر از یک شی پلاستیکی برق می زند. تصویر 11 اتوموبیلی را نشان می دهد که قسمتهایی از آن به دلیل وجود نور انعکاسی کاملا برق می زنند. 
د)نگاشت نور(light map) : نگاشت نور برخلاف حالتهای قبلی، نور واقعی را "شبیه سازی" می کند. از اینرو این نوع نور، یک نور مجازی است و نیازی به محاسبات ریاضی ندارد. باتوجه به محدودیت نورهای حقیقی در برنامه نویسی و نیز میزان محاسبات بالای نورهای واقعی، نگاشت نورکاربرد بسیاری دارد. این نوع نور، برای شبیه سازی نور موجود درروی دیوارها و کف اتاقها، خیابانها و.... بکار می رود. روش کار به این شکل است که تصویر یک نور که غالبا به شکل یک دایره است بر روی سطح دیوار یا کف خیابان قرار می گیرد. در این عمل از درهم آمیزی آلفا نیز استفاده می شود. در تصویر 12 تمامی نورهای موجود در روی دیوارها با استفاده از این روش شبیه سازی شده اند.

مشخصات ماده
هر شی، نظیر نورهای واقعی، دارای مشخصات محیطی پخشی وانعکاسی می باشد. هر یک از این مشخصات، نحوه پاسخ شی به یک نوع خاص از نور را مشخص می کند. به عنوان مثال مشخصات محیطی(Ambient) ماده نشان دهنده نحوه فعل وانفعال ماده با نور محیطی است. رنگ هر ماده غالبا با مشخصات پخشی تعیین می شود. به عنوان مثال فرض کنید که یک نور پخشی سفید در صحنه وجود دارد و مشخصات پخشی یک ماده به گونه ای تعیین شده است که رنگ قرمز آن در بیشترین مقدار و رنگ سبز وآبی آن درکمترین مقدار (مقدار صفر) تنظیم شود. این بدان معناست که این شی می تواند رنگ قرمز مربوط به نور پخشی را بازتاب کند. این رنگ بازتاب شده نشان دهنده رنگ شی است. به بیان دیگر دراین مثال رنگهای سبز و آبی ارسال شده ازنور، توسط شی جذب می شود ورنگ قرمز بازتاب می شود و لذا شی مثال ما به رنگ قرمز خواهد بود. این یکی از دلایلی است که در بازیها، اشیا با رنگهای متفاوتی دیده می شوند. عامل دیگر تفاوت رنگ اشیا، رنگ تکسچر آنهاست. در تصویر 13به تمامی اشیا یک رنگ سفید تابیده شده است؛ ولی از آنجا که این اشیا دارای مشخصات پخشی متفاوتی هستندبه رنگهای مختلفی دیده می شوند.

تکسچر
تکسچر به معنای تصاویری است که در روی اشیا قرار می گیرند. گرافیست ها برای ایجاد یک محیط واقعی، اشیا را ایجاد کرده و تصاویر را به آنها می چسبانند. به عنوان مثال برای ایجاد یک اتاق ابتدا یک مکعب را ایجاد کرده و سپس تصاویری را در روی کف، سقف و دیوارهای آن قرار می دهند. علت نامگذاری تکسچر(texture) ، ترکیب دوکلمه texel و picture است (texel picture =texture). textel در واقع همان پیکسلهای تصویرهاست که برای تمایز آنها از پیکسلهای صفحه نمایش، به آن تکسل می گویند. در OpenGL ابعاد تکسچرها باید توانی از دو باشد؛ در غیر این صورت OpenGL ابعاد تکسچر را به نزدیکتر عددی که توانی از 2 باشد تبدیل می کند. مثلا تصویری با ابعاد 128  ×328 توسط OpenGL به تصویری با ابعاد 128 ×256 تبدیل می شود. اعداد 128  و 256 هردو توانی از 2 هستند. تصویر 14 تکسچری را نشان می دهد که پس از قرارگرفتن در روی یک کره، تصویر کره زمین را شبیه سازی می کند(تصویر 15).

مه ومه حجمی
مه(fog) درگرافیک به همان معنایی است که در محیطی واقعی دیده می شود. تنها تفاوت در آن است که مه موجود در جهان حقیقی غالبا به رنگ خاکستری است؛ درحالی که مه در گرافیک می تواند به هر رنگی باشد. در برنامه نویسی روشهای مختلفی برای شبیه سازی مه وجود دارد. به عنوان مثال در OpenGL سه نوع مه خطی ، نمایی و توان دوم نمایی وجود دارد که با یکدیگر تفاوت دارند. به طور کلی منظور از مه معمولی آنست که اشیای نزدیکتر قابل مشاهده باشند واشیای دورتر محوتر ومحوترشوند تادر نهایت، اشیای دور قابل مشاهده نباشند. میزان دید بیننده و نحوه محو شدن اشیا، به پارامترهای مورد استفاده درتعیین مه بستگی دارد. تصویر 16 منظره ای را بایک مه سبز رنگ نمایش می دهد( به خاطر داشته باشید که بازیهای کامپیوتری می توانند دنیاهای غیر واقعی را شبیه سازی کنند). مه حجمی (Volumetric Fog) با مه معمولی متفاوت است. مه حجمی باعث می شود تا قسمتی از یک صحنه محو باشد. به عنوان مثال ممکن است یک اتاق دارای گرد وغبار باشد و اشیا در آن محو باشند یا ممکن است قسمتهایی از یک تونل دارای مه بوده و قسمتهای دیگر فاقد مه باشند. دراین حالت قسمتهای اطراف مه حجمی محو هستند و قسمتهای دیگری که شامل مه حجمی نیستند واضح خواهند بود. تصویر 17 از بازی Serious sam یک مه حجمی قهوه ای رنگ را نشان می دهد. دراین بازی به وفور از این تکنیک استفاده شده است.

بیلبورد(Billboarding)
در بسیاری از مواقع از تصاویردو بعدی به همراه یک کانال آلفا برای شبیه سازی اشیای سه بعدی استفاده می شود. به عنوان مثال می توان از یک تصویر درخت برای نمایش یک درخت سه بعدی استفاده کرد. با این حال برای واقعی شدن نتیجه کار مایل هستیم تا تصویر درخت همواره روبه دوربین باشد. دراین حال با چرخش دوربین، تصویر درخت نیز به گونه ای می چرخد که روبه دوربین قرارگیرد. به این عمل بیلبورد گفته می شود. تصویر 3 درختهایی را نشان می دهد که با استفاده از این روش ساخته شده اند و با توجه به گرافیک دوبعدیشان همگی  روبه دوربین جهت گیری کرده اند و ظاهر آنها همواره سه بعدی به نظر میرسد.

Particle systemسیستمی است که برای شبیه سازی جلوه های ویژه ای نظیر انفجار، آتش، دود، آبشار و... بکار می رود. علت آنکه به آن سیستم مبتنی بر ذره می گویند آنست که این جلوه های ویژه از ذرات متعددی تشکیل می شوند. هر ذره (مثلا یک قطره آب از یک آبشار) توسط یک تصویر دوبعدی یا عناصر ساده ای نظیر نقطه ایجاد می شود. در صورتی که برای مدلسازی هر ذره، از یک تصویر دو بعدی استفاده شده باشد معمولا توسط در هم آمیزی و برش آلفا قسمتهایی از این تصویر دو بعدی حذف می شود.به علاوه هر یک از این ذره ها می توانند دارای مشخصات خاص خود نظیر رنگ، سرعت حرکت و... باشند. از ترکیب این ذره ها(مثلا چند صد ذره) با یکدیگر یک شکل خاص نظیر مدل دود، آتش وآبشار بدست می آید. در تصویر 18 تمامی جلوه های ویژه مربوط به آتش، دود و انفجار توسط Particle system شبیه سازی شده اند. در تصویر19 نیز بارش برفها بوسیله Particle system ایجاد شده است.


دوربین مداربسته، دزدگیر اماکن،محاسبه لنز دوربین مداربسته، قفل الکترونیک، برق اضطراری، پارس گارد

  • ShahBaz

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

ShahBaz | يكشنبه, ۱۰ آبان ۱۳۹۴، ۰۹:۱۹ ق.ظ

شبکه عصبی  به زبان ساده:

شبیه سازی سلولهای مغز انسان با معادلات است

ورودی p و خروجی t را به شبکه نشان می دهیم تا یاد بگیرد. بعد ورودی جدید می دهیم که تغییر کرده ی p است و خودش خروجی راحدس می زند


ورودی p می تواند عکس مجرم در اداره پلیس و خروجی t نام اوست و ورودی جدید عکس مجرم با ریش و عینک است. شبکه نام او را می گوید(خیلی قشنگه)


  • ShahBaz

تشخیص افسردگی در متلب

ShahBaz | پنجشنبه, ۱۵ مرداد ۱۳۹۴، ۰۵:۴۰ ب.ظ

تشخیص افسردگی در متلب

درمان افسردگی با شبکه عصبی

در این شبیه سازی تشخیص افسردگی توسط شبکه عصبی RBF و SVM و MLP  است .که قادر است با توجه به اطلاعاتی که از فایل اکسل دریافت میکند افسردگی های ثانویه،اساسی، دو قطبی نوع یک و نوع دو را تشخیص دهد.در این پروژه از Kmeans نیز استفاده شده است.تصویر بالا بخشی از برنامه را توضیح میدهد.

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

پس از خرید بلافاصله می توانید فایل شبیه سازی را دانلود نمایید.

 

نام فایل:بخشی از راهنمای تشخیص افسردگی توسط شبکه عصبی RBF و SVM و MLP

حجم فایل :478 کیلوبایت

فرمت فایل:doc

نام فایل:بخشی از فیلم نحوه استفاده از شبیه سازی

حجم فایل:7.27

خرید فایل شبیه سازی

قیمت واقعی:200-400 هزار تومان

حجم پروژه :33.5 مگابایت

شبیه سازی به صورت کامل و خط به خط تشریح شده است.

هرگونه سوال و یا مشکل در خرید را با mshi148@gmail.com  و 09108382887 در میان بگذارید.

  • ShahBaz

تقسیم بندی تصاویر

ShahBaz | يكشنبه, ۲۸ تیر ۱۳۹۴، ۱۲:۲۷ ق.ظ


باسلام
چگونه می تونم این تصویر را به هر روشی که مناسب میدانید تقطیع کنم و بعد از برچسب گذاری اجزا، سعی کنم با استخراج ویژگی‌های مناسب از تصویر باینری، دایره ها، مربع ها و مثلث ها را از یکدیگر جدا کنم و محل هر یک را مشخص کنم. 
باتشکر


مهمان عزیز شما حق دیدن لینک ها را ندارید
عضویت
امیدوارم این روش به کارتون بیاد,البته فکر کنم روش
K-means
هم به کارتون بیاد
مرحله اول: خواندن تصویر
کد:
I = imread('pic.tif'); figure, imshow(I), title('original image'); text(size(I,2),size(I,1)+15, ...     'Image courtesy of Alan Partin', ...     'FontSize',7,'HorizontalAlignment','right'); text(size(I,2),size(I,1)+25, ....     'Johns Hopkins University', ...     'FontSize',7,'HorizontalAlignment','right');
مرحله دوم : تشخیص سلول های تصویر
کد:
[~, threshold] = edge(I, 'sobel'); fudgeFactor = .5; BWs = edge(I,'sobel', threshold * fudgeFactor); figure, imshow(BWs), title('binary gradient mask');
مرحله سوم:منبسط کردن تصویر
کد:
se90 = strel('line', 3, 90); se0 = strel('line', 3, 0);
کد:
BWsdil = imdilate(BWs, [se90 se0]); figure, imshow(BWsdil), title('dilated gradient mask');
مرحله چهارم : پر کردن شکاف های داخلی
کد:
BWdfill = imfill(BWsdil, 'holes'); figure, imshow(BWdfill); title('binary image with filled holes');
مرحله پنجم:حذف لبه ها
کد:
BWnobord = imclearborder(BWdfill, 4); figure, imshow(BWnobord), title('cleared border image');
مرحله ششم:صاف کردن تصویر
کد:
seD = strel('diamond',1); BWfinal = imerode(BWnobord,seD); BWfinal = imerode(BWfinal,seD); figure, imshow(BWfinal), title('segmented image');
و در آخر 
کد:
BWoutline = bwperim(BWfinal); Segout = I; Segout(BWoutline) = 255; figure, imshow(Segout), title('outlined original image');
  • ShahBaz

یافتن وسط تصویر در متلب

ShahBaz | يكشنبه, ۲۸ تیر ۱۳۹۴، ۱۲:۰۰ ق.ظ

سلام ..

در مورد پیداکردن مراکز آبجکت ها در یک تصویر (--باینری--) میتونید از دستور regionprops استفاده کنید با این شرط که آرگومان تعیین خصوصیت این دستور رو Centroid تعیین کنید .. در این صورت میتونید مراکز آبجکت ها رو به دست بیارید و Spot کنید .. برای مثال، تصویر زیر رو باهم مشاهده کنیم ..


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


نـتـیـجـه ی اعـمـال دسـتـورات


فصل پنجم تعاریف چند اصطلاح در پردازش تصویر و دستورات آن در متلب 

1-1 تابع regionprops

شاید یکی از مهمترین توابعی که با استفاده از تابع پیش نیاز bwlabel در زمینه پردازش تصویر مورد استفاده قرار می گیرد تابع regionprops باشد . کسب اطلاعات از یک آبجکت مهمترین بخش یک عملیات پردازش تصویر است . این تابع انواع مشخصات یک label matrix را در یک متغیر به صورت یک ساختار[1]ذخیره می کند . ساختار در واقع یک نوع خاص از داده است . فرم رایج ایت تابع به شکل زیر می باشد :

گزینه properties می تواند شامل زیادی می باشد که دو مورد آن بحث می شود .

Area : این گزینه مساحت هر آبجکت را به صورت یک ماتریس در اختیار ما قرار می دهد و مساحت آبجکت ها بر حسب پیکسل در واحد سطح می باشد .

BoundingBox : این گزینه هر آبجکت را به صورت یک شبکه مربع شکل تقسیم می کند خود BoundinBox  یک بردار سطری با 4 عنصر است که در شکل زیر دیده می شود و به ترتیب شماره ستون اولین پیکسل ، شماره سطر اولین پیکسل ، پهنای آبجکت در سطح افقی ، و ارتفاع آبجکت در سطح عمودی را نشان می دهد .

 

1-2 انواع تصاویر چیست ؟ 1-2-1 تصاویر باینری

تصویر باینری[2] تنها دارای دو رنگ سیاه و سفید می باشد و درماتریس آنها تنها اعداد صفر و یک قرار گرفته است . این نوع تصاویر کاربرد فراوانی را در زمینه پردازش تصویر دارند و اکثر برنامه ها تصاویر خود را در نهایت به این نوع تصاویر تبدیل کرده و بر روی آنها پردازش را انجام می دهند . در شکل زیر یک نمونه فرضی را که به نوع باینری تبدیل شده است را مشاهد می کنید .


1-2-2 تصاویر RGB

این نوع تصاویر رنگی که تشکیل شده از 3 ماتریس جداگانه برای رنگ های سبز و آبی و قرمز می باشند . برای ذخیره نمودن اطلاعات مربوط به این نوع تصاویر ، از یک ماتریس m*n*h استفاده می شود . هر آرایه از سه ماتریس بعد از ترکیب شدن ، تبدیل به رنگ کامل یک پیکسل از تصویر می شود . در شکل زیر یک نمونه از این نوع تصاویر را به همراه ماتریس های آن مشاهده می کنید .

1-2-3 تصاویر خاکستری

در تصاویر خاکستری یا گری[3] برای ذخیره نمودن اطلاعات مربوط به این نوع تصاویر ، از یک ماتریس m*n استفاده می شود . آرایه های ماتریس این تصاویر تنها نشان دهنده میزان روشنایی یا تیرگی ، تصویر هستند . در حقیقت تنها تفاوت آن با تصویر RGB ، نبودن رنگ در تصویر است .

1-2-4 تصاویر رنگی یا شاخص

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

 

1-2-5 تابع خواندن تصویر در متلب

نرم افزار متلب تمامی تصاویر را به صورت ماتریس شناسایی می کند دستور خواندن تصاویر imread می باشد گه فرم رایج آن به صورت زیر است :


توسط این دستور تصویر مورد نظر فراخوانی شده و در متغیر im به صورت ماتریس ذخیره می شود .

1-3 تبدیل تصویر RGBبه گری

معمولا اکثر توابع موجود در متلب برای تصویر گری می باشد . برای تبدیل تصاویر رنگی به گری می توان از تابع rgb2gray استفاده کرد . و فرم کلی آن به صورت زیر می باشد .


1-4 آبجکت چیست ؟

 


شکل ‏5‑5 : نمایش تصویری آبجکت ، لبه ، حفره ، زمینه

آبجکت در واقع کلیه اشیاء درون تصویر می باشد . آبجکت می تواند به کوچکی یک پیکسل باشد . آبجکت های درون یک تصویر را می تواند به روش آستانه گیری پیدا کرد . به پیسکل هایی که درون یک آبجکت یا در مرز آن قرار گرفته است ، پیکسل های پیش زمینه[4] گفته می شود .

 

1-5 لبه چیست ؟

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

1-5-1 انواع لبه ها در تصاویر

Ø           لبه های افقی

Ø           لبه های عمودی

Ø           لبه های مورب


در شکل ‏5‑7به وضوح تفاوت بین مقادیر خاکستری سطر های دوم و سوم روشن است ایند تغییر کاملا در تصویر مشهود بوده و در واقع چشم انسان این گونه تغییرات را در تصویر به وضوح احساس می کند . در واقع اگر شکل ‏5‑6را به صورت عمودی پیمایش کنیم لبه های افقی را می یابیم . در شکل ‏5‑7به وضوح تفاوت بین مقادیر درجات خاکستری ستون های دوم و سوم روشن است در واقع اگر بلوک را به صورت عمودی پیمایش کنیم لبه های افقی را می یابیم .(مک اندرو, 2010)

1-5-2 تابع تشخیص لبه در متلب

برای تشخیص لبه در متلب از تابع edge استفاده می شود الگوریتم های فراوانی برای شناسایی لبه در این تابع وجود دارد و این نکته بسیار مهم است که بدانیم از کدام الگوریتم استفاده کنیم . این تابع برای تصاویر گری و باینری قابل استفاده است در صورتی که بخواییم بر روی تصاویر رنگی اعمال کنیم باید بر روی هر 3 ماتریس R   ، G ، B ، به صورت جداگانه اعمال شود .

انواع متد ها و الگوریتم های این تابع به شرح زیر است :

Ø           Sobel

Ø           Prewitt

Ø           Robert

Ø           Log

در تمامی حالت های بالا تصویر خروجی لبه برداری شده ، از نوع باینری یا منطقی است . (حیدری, پاییز 1389)

روش فراخوانی تابع به طور کلی به صورت زیر است :


f  : تصویر ورودی

T : آستانه تعیین شده

Metod : متد مربوط به تشخیص لبه را مشخص می کند که در بالا به آن اشاره شد .

dir : جهت دلخواه لبه های تشخیص دهنده را مشخص می کندکه سه حالت مختلف می تواند داشته باشد :

horizontal : فقط لبه های افقی تشخیص داده می شود .

vertical : فقط لبه های عمودی تشخیص داده می شود .

both : هر دو لبه افقی و عمودی تشخیص داده می شود که به صورت پیش فرض این گزینه می باشد .

g : تصویر خروجی است که از نوع منطقی یا باینری می باشد که در مکان هایی که لبه تشخیص داده شوند برابر با 1 ؛ و در بقیه مکان ها صفر است .

t : پارامتر t در خروجی اختیاری است . t مقدار آستانه ای است که توسط edge استفاده می شود . اگر T مشخص شود آنگاه t=T خواهد بود . در غیر این صورت تابع edge پارامتر t را برابر با آستانه ای قرار می دهد تعیین می کند و سپس برای تشخیص لبه استفاده می نماید .(گونزالس, 2009)

1-6 پس زمینه چیست ؟

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

1-7 حفره چیست ؟

سوراخ یا حفره یک ناحیه از پس زمینه تعریف می شود که توسط پیکسل های پیش زمینه احاطه شده است همچنین باید در نظر داشت که فضایی حتی به اندازه یک پیکسل که در یک آبجکت محصور شده است یک حفره محسوب می شود .(گونزالس, 2009)

1-8 هیستوگرام چیست ؟

منحنی های هیستوگرام کلید درک تصاویر دیجتال می باشد . شکل موزائیکی زیر از 40 موزائیک رنگی تشکیل شده است که می توانیم آنها را روی هم و به صورت مجزا قرار دهیم . هر چه ستون یک رنگ بلند تر باشد ، تعداد بیشتری موزائیک از آن رنگ در تصویر وجود دارد . در نتیجه منحنی هیستوگرام این تصویر موزائیکی نشان دهنده توزیع قطعات رنگی در آن می باشد .


هر تصویر دیجیتال مجموعه ای از موزائیک ها یا پیکسل هاست . به جای دسته بندی پیکسل ها براساس رنگ ، می توانیم آنها را بر اساس روشنایی به 256 سطح تقسیم کنیم . در این تقسیم بندی عدد صفر برای رنگ سیاه و عدد 255 برای رنگ سفید در نظر کرفته می شود .ارتفاع هر میله عمودی نشان دهنده تعداد پیکسل های آن روشنایی خاص است .(سایت, 1389)

 

 

 

 

 

 

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

Ø           در تصاویر تیره ، درجات خاکستری ( و در نتیجه هیستوگرام مربوط ) به طرف کمترین مقدار دسته بندی[5] شده اند .

Ø           در تصویر با شدت روشنایی زیاد ، درجات خاکستری به سمت بیشترین مقدار ، دسته بندی شده اند .

Ø           در تصاویر با وضوح مناسب درجات خاکستری در کل دامنه به صورت مناسب پخش شده اند .

در متلب برای رسم نمودار هیستوگرام از تابع imhist استفاده می شود .

1-9 سازه چیست ؟

سازه از یک یا چند پیکسل تشکیل شده که با قرار گرفتن این پیکسل ها در کنار یک دیگر تشکیل یک شکل خاص را می دهند که معمولا بع آنها کرنل[6] نیز گفته می شود .

1-10 افزایش دهنده یا انبساط چیست ؟

افزایش دهنده یا انبساط عملیاتی است که اشیای موجود در تصویر رشد پیدا می کنند . بسط و روش ضخیم کردن این ضخیم کردن ، توسط شکلی کنترول می شود که عنصر سازنده نام دارد . 
انبساط A و B که با نمایش داده می شود به صورت زیر تعریف می گردد :

‏5‑1

 

در این جا A در واقع ماتریس تصویر ورودی و B ماتریس سازه یا به عبارتی کرنل ما می باشد . در واقع این گونه تعریف می کنیم که : رفلکشن ؛ ترنسلیشن B ، اشتراکش با A باید مخالف تهی باشد . در واقع مرکز ثقل کرنل تک تک بر روی پیکسل های ماتریس تصویر قرار می گیرد اگر تنها یک پیکسل(پیکسل های یک) از ماتریس سازه با پیکسل های پیش زمینه هم پوشانی داشته باشد ؛ سازه در آن جا کپی می گردد . (گونزالس, 2009)

اضافه شدن سازه به پیکسل های دارای همسایگی به صورت شکل می باشد . مشاهد می شود که با اعمال تابع و تعریف یک سازه خطی و با زاویه 90 درجه و طول 3 پیکسل ، بر روی پیکسل های تصویر که دارای همسایگی هستند ، سازه به تک تک پیکسل ها اضافه می شود . یعنی هر پیکسلی که در تصویر اصلی وجود دارد مرکز ثقل سازه بر روی آن قرار می گیرد و سازه در آنجا کپی می شود . (حیدری, پاییز 1389)

 

 

شکل ‏5‑9 : بزرگ نمایی بخشی از تصویر

 

شکل ‏5‑10 : یک سازه خطی

 

شکل ‏5‑11 : اعمال تابع imdilate بر روی تصویر

 

شکل های زیر اعمال این تابع را بر روی تصویر نمایش می دهد

شکل ‏5‑12 : یک تصویر باینری

شکل ‏5‑13 : تصویر باینری بعد از اعمال تابع imdialate

1-11 ساییدگی

ساییدگی [7]، اشیای موجود در تصویر دودویی را کوتاه یا نازک می کند . همانند انبساط ، روش و بسط نازک کردن توسط عنصر سازنده کنترول می شود . ساییدگی A توسط B  به صورت زیر تعریف می شود :

‏5‑2

 

در متلب برای ساییدگی از تابع imerode استفاده می شود .تابع imerode تابعی بسیار مهم در زمینه تفکیک و جداسازی آبجکت های درون یک تصویر است . این تابع در صورتی که آبجکت های درون یک تصویر به یکدیگر چسبیده باشند و تشکیل یک آبجکت را داده باشند بسیار کار آمد بوده و با کوچک کردن آبجکت ها آنها را قابل تفکیک می کند .در شکل ‏5‑14 و شکل ‏5‑15 این موضوع دیده می شود .

 

 

 

شکل ‏5‑14 : نمایی از دو آبجکت بهم چسبیده

شکل ‏5‑15 : نتیجه بعد از اعمال تابع imerode  به تصویر شکل شکل ‏5‑14

1-12 تابع imopen

یکی از توابعی که از سازه های ساخته شده استفاده می کند ، تابع imopen است . این تابع به صورت یک فیلتر برای حذف آبجکت های هم اندازه و هم شکل با سازه ها در یک تصویر عمل می کند.

1-13 تابع imclose

این تابع دقیقا عکس تابع imopen عمل می کند و افزایش دهنده نقاطی است که به اندازه و شکل سازه مورد نظر باشد .

1-14 تبدیل تصویر باینری به ماتریس برچسب [8]

برخی توابع نیاز به یک تابع پیش نیاز دارند تا تصویر را برای انجام عملیات خود آماده کند . تابع bwlabel یکی از توابع پیش نیاز است که تصاویر باینری را برای انجام عملیات آماده سازی می کند . می دانیم آبجکت های درون یک تصویر باینری همگی دارای مقدار یک هستند . برای انجام عملیات های مختلف بر روی این صتاویر ، نرم افزار باید آبجکت ها را از همدیگر متمایز بداند . تنها راه این است که به حای استفاده از تنها مقدار یک ، از مقادیر دیگر هم برای هر آبجکت استفاده شود . برای مثال ابجکت شماره 1 ، آبجکت شماره 2 و یا بیشتر ، اما همگی باید به رنگ سفید باشد و تغییر نداشته باشد . برای این کار از تابع bwlabel استفاده می شود که تصویر را به ماتریسی تبدیل می کند که label matrix یا ماتریس برچسب نامیده می شود و هر یک از آبجکت ها شماره مخصوص به خود را دارد . در زیر تصویری از ماتریس و ماتریس برچسب خورده آن دیده می شود .

شکل ‏5‑16 :  بخشی از یک تصویر که سه آبجکت در آن قرار دارد

شکل ‏5‑17 : ماتریس برچسب که از اعمال bwlabel  بر ماتریس شکل شکل ‏5‑16 به دست آمده است

1-15 تابع imfill

توسط این تابع می توان قسمت های سیاه رنگ نواحی ( مقادیر صفر ) و حفره های درون یک تصویر را به رنگ سفید در آورد .

شکل ‏5‑18 : تصویری باینری که دارای دو حفره می باشد

شکل ‏5‑19 : تصویر شکل شکل ‏5‑18 بعد از اعمال تابع imfill  به آن

شکل ‏5‑18دارای دو حفره[9] می باشد حال تابع imfill   را به فرم زیر به آن اعمال می نماییم . همان طور که در شکل ‏5‑19دیده می شود بعد از اعمال این تابع حفر ها پر شده است و در واقع پیکسل های پس زمینه ( صفر های ) به پیکسل های پیش زمینه ( یک ) تبدیل شد ه است .

Pic در واقع تصویر باینری وردی است و آبشن hole هم به حفر های تصویر اشاره دارد .

1-16 تابع bwareaopen

این تابع کاری شبیه به تابع imopen را انجام می دهد . یکی از فرم های آن به صورت زیر نوشته می شود

در این جا pic می تواند یک تصویر باینری باشد و x یک عددی است که اشاره به مساحت بر حسب پیکسل را دارد مثلا اگر x=10  باشد و این تابع را به تصویر باینری pic اعمال نماییم ؛ در تصویر نتیجه کلیه ی آبجکت هایی که مساحت آنها کمتر از 10 پیکسل در واحد سطح باشد حذف می شود .


[9]پیکسل های پس زمینه ای که توسط پیکسل های پیش زمینه احاطه شده است .



منبع : platerecognition[dot]blogfa[dot]com[slash]post-6[dot]aspx
  • ShahBaz

پروژه پردازش تصویر در هوش مصنوعی

ShahBaz | دوشنبه, ۱۵ تیر ۱۳۹۴، ۱۲:۴۱ ق.ظ

پروژه پردازش تصویر در هوش مصنوعی

قیمت: 38000 تومان

      پروژه پردازش تصویر در هوش مصنوعی      








پروژه کارشناسی مهندسی نرم افزار پردازش تصویر در هوش مصنوعی


موضوع  :پروژه پردازش تصویر در هوش مصنوعی


این پروژه در قالب word وpdf  می باشد 


فایل pdf :آن 67 صفحه می باشد


شامل


فهرست:


چکیده:


فصل اول


مقدمه:


کاربردهای پردازش تصویر:


صنعت:


هواشناسی:


کشاورزی:


علوم نظامی و امنیتی:


نجوم و فضا نوردی:


پزشکی:


فناوریهای علمی:


باستان شناسی:


تبلیغات:


سینما:


اقتصاد:


روانشناسی:


زمین شناسی :


فصل دوم


پردازش تصویر



مرحله اول ( دریافت تصویر ورودی ):


مرحله دوم ( پیش پردازش تصویر ):


مرحله سوم ( پردازش تصویر ):


مرحله چهارم ( آنالیز تصویر ):


انواع پردازش تصویر:


مقادیر  پیکسلها:


دقت تصویر:.


روشهای پردازش تصاویر


بخش بندی سطح خاکستری ( Gray-Level Slicing )


عملیات مختلف بر روی تصاویر:


جمع دو تصویر:


مکمل کردن تصویر:


میانگین گیری از تصویر:


:(Image restoration)ترمیم تصویر


نواری شدن(باندی شدن):


خطوط از جا افتاده ( خطا در تصویر):


هیستوگرام تصویر:


بالا بردن دقت عکس:


ارتقای تصویر و عملگر کانولوشن:


تعدیل هیستوگرام:


افزایش تباین از طریق امتداد اعداد ( DN) پیکسلها:


فیلتر کردن تصویر:


اعمال فیلتر تصویر در MATLAB


ایجاد فیلتر دلخواه:


طراحی فیلتر:


طراحی فیلتر میانگین ماتریس مربعی:


طراحی فیلتر میانگین با ماتریس گرد:


طراحی فیلتر پایین گذر گوسی:


طراحی فیلتر لاپلاس:


طراحی فیلتر لاپلاس از روش حذف گوس:


طراحی فیلتر حرکت دهنده:


طراحی فیلتر تقویت لبه:


طراحی فیلتر لبه افقی و عمودی:


طراحی فیلتر افزایش دهنده شدت نور و لبهها:


فصل سوم


کاربردهای هیستوگرام در پردازش تصویر:


تاثیر تکنیکهای پیش پردازش در افزایش دقت تناظر یابی عکسی:


استخراج نواحی شامل متن و تفکیک متن به حروف:


پیش پردازش تصویر:


فوکوس خودکـار دوربین های دیجیتالی:


تشخیص چهره:


تشخیص پلاک خودرو:



فصل چهارم


تشخیص پلاک خودرو:


تشخیص محل پلاک:


فیلتر گوسین:


پیدا کردن لبههای عمودی:


تحلیل هیستوگرام:


پیدا کردن محل کاندید پلاک:


سایش تصویر:


گسترش عمودی تصویر:


استخراج پلاک:


جداسازی کاراکترها:


شناسایی کاراکترها:


شبیه سازی:


فصل پنجم  نتیجه گیری:


مراجع:



فهرست جداول و اشکال


جدول 1: مقایسه انواع تصویر بر اساس تعداد بیت


شکل 1: نحوه نگاشت مقادیر  پیکسله ی تصویر ورودی


شکل 2: نحوه نگاشت مقادیر پیکسله ی تصویر خروجی


شکل 5: نحوه پیاده سازی عملگر مکمل


شکل 6: نحوه پیاده سازی عملگر میانگین


شکل 7: تصویر  دانهه ی برنج


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


شکل 9: یک نمونه نمودار هیستوگرام


شکل 01: ماسک اعمال شده بر روی  پیکسله


شکل 21: تصویر خروجی پس از تعدیل هیستوگرام                          


 شکل 11: تصویر ورودی و هیستوگرام آن


شکل 31: عمل کشش خطی


شکل 41: پیکسل های تیز و آرام


شکل 51: تصویر با نویز فلفل نمکی


شکل 61: تصویر با اعمال فیلتر تیز کننده


جدول2: انواع فیلتر


شکل 71: فیلتر disk


شکل 81: فیلتر گوسی


شکل 91: فیلتر لاپلاس


شکل 12: فیلتر تقویت لبه prewitt


شکل 22: فیلتر تقویت لبه sobel


شکل 32: فیلتر افزایش دهنده شدت نور unsharp


شکل 42: نمونه ای از کاربرد ocr


شکل 52: مراحل تشخیص پلاک


شکل 62: تصویر سطح خاکستری ورودی


شکل 27:  (الف) ماسک عمودی سوبل، (ب) ماسک افقی سوبل


شکل 82: نتیجه عمل لبه یابی


شکل 92: نمودار هیستوگرام تصویر


شکل 03: تصویر کاندید به دست آمده از تصویر لبه


شکل 13: تصویر حاصل شده پس از حذف نواحی خارج از محدوده


شکل 23: تصویر حاصل شده پس از سایش و گسترش افقی


شکل 33: تصویر حاصل شده از پر کردن حفره های احتمالی


شکل 43: محل تقریبی پلاک  پر کردن حفره های احتمالی


شکل 53: تصویر حاصل شده پس از گسترش عمودی


شکل 63: پیدا شدن محل پلاک


شکل73: پلاک استخراج شده از کل62.52


شکل 83: هیستوگرام پلاک استخراج شده


شکل 93: کاراکترهای جداشده






خرید        سوال از فروشنده

  • ShahBaz