آموزش پردازش شدت نور تصاویر در متلب (5)

آموزش برنامه نویسی و پردازش تصویر در متلب matlab

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

ادامه آموزش نرم افزار متلب بخش5

در این مبحث آشنا میشویم با:

1- شدت نور تصاویر 

2- تابع imadjust

3- نحوه فرا خوانی تابع 

4- تابع enhancement

5- ترسیم هیستوگرام فراوانی تصویر 

6- تابع stretchlim

 

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

درپردازش تصویر با شدت روشنائی تصویردر متلب سرو کار داریم که دراغلب الگوریتم ها به عنوان پیش پردازش استفاده میشود

Intensity Transforms  (شدت نور) کار این مجموعه ای از Image Enhancement (توسعه تصویر یا پرداخت بهبود تصویر)

است که برای این که وضوح تصویر را بالاتر ببرد انجام میشود یا چیزهایی که ما به دنبال آن هستیم در تصویر واضح تر شود .

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

بر اساس روشنائی وشدت نوری که هر بخش از   تصویر دارد یک سری پراسس هایی را انجام میدهیم  و امید داریم بر اساس آن چیزی را که میخواهیم بر آن تاکید کنیم واضح تر شود.

درآموزش و پردازش شدت نور در تصاویر در نرم افزار متلب،چیزی که به عنوان تابع اصلی واساسی در محیط متلب برای شدت نور انجام میشود imadjust   است که کارش تغییر روشنائی و تبدیل تصویر به یک تصویر واضح تر  با نگاشت خطی اشباع شده .

Syntax
J=imadjust(I)
J= imadjust (I, [low- in ; high- in] ,[low-out ; high- out ])
J=imadjust(I , [low –in ; high-in], [low-out ; high- out] , gamma)
Newmap = imadjust(map , [low-in ; high- in] , [low-out ; high-out] , gamma)
RGB2 = imadjust(RGB1 , … )

ورودی (آی)I   خروجی J (جی)  : کاری که انجام میدهد یک حالت خاصی از حالت پایینی است به این شکل که ایمیج را میگیرد دو تا ماتریس ورودی دارد Low in put , high in put,

مقدار روشنائی ورودی باin put این پوت ومقدار روشنائی خروجی بout put  ا اوت پوت است .اگر تصویری که وارد میشود بین      Low in put , high in put,دقیقا با یک معادله خطی ربط پیدا میکنه به lowoutput ,high output

این در واقع یک منحنی خطی اشباع شده است چون اگه ادامه بدهیم خروجی حتما بین حدودی  که مشخص کردیم است.

گاما اگر بزرگتر از 1 باشد منحنی به سمت بالا میرود و اگر گاما کوچکتر از 1 باشد منحنی به سمت پایین میاید

(حالت غیر خطی میشود)

 

آموزش روشنائی درتصویر

نحوه فرا خوانی تابع اینجا گفته شده (حد و حدود ورودی و خروجی را مشخص میکند

پارامتر بعدی را اضافه کنیم گاما میشود و حالت های دیگری کهmap مپ را میدهیم

اگر imread  را دو پارامتره خروجی را میگرفتیم خروجی اول خود تصویر بود خروجی دوم کالرمپ بود

یک تصویر رادر نظر بگیرید وقتی کنتراست(تفاوت شکاف بین کمترین وبیشترین روشنائی که در تصویر است) کافی ندارد تار است .

 

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

 

اگر این را بیایم enhancement بکنیم  بدون پارامتر به جای این پوت و آن پوت  کمترین رو شنائی وبیشترین  روشنائی آن تصویر ورودی را در نظر میگیرد این تصویر تار میشود چون همه تقریبا حول و حوش میانگین رنگ سفید وسیاه جمع شدند

واریانس اینها را اگر زیاد بکنیم باعث میشود تفاوت بین اینها زیاد شود پراکندگی داده ها زیاد میشودو انهایی که تیره اند تیره تر و انهایی که روشن هستند روشن ترمیشوند این یکی از جنبه های enhancement است درواقع بحث گسترش طیف دینامیکی تصویر است که باعث میشود کنتراست تصویر افزایش پیدا کند .(وضوح تصویر بیشتر می شود)

حالا خودمان بیایم یک برنامه ای بنویسیم در محیط متلب که کار  enhancement  را برایمان انجام دهد .

قبل از همه پوشه ای را باز میکنیم بناIntensity Transfrom با دستور edit(ادیت) یک فایل جدیدی را باز میکنیم

Clc صفحه را پاک میکند;

Clear; حافظه را پاک میکند

Close all;نمودار یا تصویری در حال نمایش باشد همه را میبندد

یک تصویر را لود میکنیم .

%%Load Image 
Img 1 = imread (‘pout . tif ‘) ;
Img 2 = imadjust (img 1) ;
%% Show Results
Figure ;
Subplot (1, 2, 1) ;
Imshow (img 1) ; 
Title (‘ Original Image ‘) ;
Subplot (1 ,2 , 2) ;
Imshow (img 2 ) ;
Title (‘ Result of imadjust ‘) ;

این را ذخیره میکنیم و با F5 اجرا میکنیم

 

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

روشنائی این نقاط به کمیت آماری است اگر هیستوگرام فراوانی تصویر اصلی را ترسیم کنیم

 

نمودار هیستوگرام فراوانی یک تصویر

تصویر اصلی ما نزدیک میانگین است واریانس آن محدود است که بارنگ قرمز نمایش دادیم

تصویر دوم پخش تر است و واریانس آن افزایش پیدا کرده بارنگ آبی نمایش دادیم( به خاطر این وضوح بیشتری داریم)

همیشه در بحث پیچرسلکشن تاکید میکنند که واریانس بیشتر شود

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

(یک تصویر کاملا تار ایجاد میشود)

اگر بخواهیم بهترین حالت ممکن را انتخاب بکنیم

یک راه آن این است که از خود تصویری که داریم img1

>>min (img 1 (:) )
Ans =
74 
>>max (img 1 (:))
Ans = 
224 
>> min (img 1 (:) ) /255
Ans = 
0 
>>min (img 1 ( :) )
Ans = 
74 
>> double (min (img 1 ( : ) ) ) / 255 
Ans = 
0/2902 
>> double (max (img 1 ( : ) ) ) / 255 
Ans = 
0 /8784 
>> 
Img 3 = imadjust (img 1 , [0/29  0/87]  , [0 1] ) ;

درآموزش و پردازش شدت نور در تصاویر در نرم افزار متلب اگر اعداد را عوض کنیم ،

به جای صفر و یک  (29 صدم و 87 صدم ) را قرار دهیم ببینیم تصویر چه میشود .

 

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

 

 

باز هم یک تفاوت هایی با تصویر اصلی دارد

یک تابعی داریم به نام stretchlim که اگر آن را فرا خوانی کنیم در img1

Img3 = imadjust (img 1 , stretchlim (img 1 ) , [0 1] ) ;

 

 

 

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

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

Img3 = imadjust (img 1 , stretchlim (img 1 ) , [0/49  0/51 ] )

 

 

شدت نور در تصویر

اگر هر دو را نیم قرار دهیم یک زمینه کاملا طوسی نشان میدهد .

%%Load Image 
Img 1 = imread (‘pout . tif ‘) ;
Img 2 = imadjust (img 1) ;
Img3 = imadjust (img 1 , stretchlim (img 1 ) , [0 1] ) ;
Img 4 = imadjust ( img , stretchlim ( img 1 ) , [ 0/5  0/5 ] ) ;

 

 

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

 

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

تا زمانی که اشباع ما در محدوده باشد منحنی و خط تفاوتی با هم ندارند  مثل ضرب و تقسیم شدن یک عدد روشنائی در یک عدد ثابت است .

 

نمودار شدت نور

 

 

ادامه آموزش نرم افزار متلب در بخش 6