روش تنظیم شدت نور تصاویر در نرم افزارمتلب (3)

آموزش متلب

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

با توابع imadjust – enhancement – stretchlim – Imhist

آموزش برنامه نویسی در متلب 3

 نوشته ها :

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

2-  کار با تابع imadjust

3- چگونگی فرا خوانی یک تابع 

4- کار با تابع enhancement

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

6- کار با تابع stretchlim

7- کار با تابع  Imhist

8- پراکندگی واریانس 

الگوریتم میزان نور تصاویر را به عنوان پیش پردازش در نظر میگیریم .

وقتی میخواهیم نقاطی از تصویر را روشنتر یا واضحتر کنیم از وش 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 , … )


خروجی J (جی) ورودی (آی)I :

دو ماتریس ورودی Low in put , high in put میزان نور خروجی با out put و میزان نور ورودی با in put به دست میاید .

معادله خطی  lowoutput ,high output به تصویر ورودی بین Low in put , high in put مربوط است .

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

خروجی J (جی) ورودی (آی)I

مرز ورودی و خروجی با output ،  in put معلوم میشود .

دو شاخص خروجی imread اول خود تصویر ، دوم کالرمپ

 وقتی تصویر تار است کنتراست کافی ندارد .

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

 

تابع imadjust در متلب

 

enhancement بدون عدد برای output ،  in put خودکار میانگین سیاه و سفید را قرار میدهد و یک تصویر کدر ارائه میدهد .

گسترش طیف دینامیکی تصویر : هر چه واریانس بیشتر وضوح و کنتراست و پراکندگی و تفاوت داده ها بیشتر میشود .

برنامه ای که کار  enhancement  را انجام دهد .

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

علامت Clc; برای پاک کردن صفحه استفاده میکنیم .

علامت Clear;  برای پاک کردن حافظه استفاده میکنیم .

علامت Close all; برای بستن همه تصاویر یا نمودارهای در حال اجرا ی برنامه استفاده میشود .

  1.   یک تصویر را باز میکنیم

  1. %%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 اجرا میکنیم .

 

تابع imadjust در متلب

مقدار نور تصاویر به کمیت آماری ربط دارد .

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

 

 نمودار فراوانی هیستوگرام متلب

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

img1 گرفتن از خود تصویر یکی از راه حل ها برای انتخاب بهترین حالت ممکن میباشد :

  1. >>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 صدم )

تغییر عدد تابع imadjust در متلب

واریانس صفر و یک برابر میانگین داده ها تصویر کلا تار و طوسی میسازد .

فرا خوانی تابع  stretchlim   در img1 :

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

 

تابع  stretchlim  در متلب

خیلی کم باهم فرق میکنند ، (دست یابی به تصویر اصلی )

برای تصویر ضعیف تر :

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

 

imadjust در متلب

 زمینه طوسی و تار حاصل نیم گرفتن دو عدد است .

  1. %%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 ] ) ;

    imadjust  stretchlim  Imhist در متلب

اگر میانگین وزن ترکیب خطی شماره 2و3 را بگیریم تصویر اُرجینال به دست میاید .

اگر اشباع در محدوده باشد خط و منحنی با یکدیگر فرقی ندارند .

 

نمودار ورودی و خروجی متلب

 پارامترهای دیگر را مورد ارزیابی قرار میدهیم:

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

 

 

نمودار خروجی ها در متلب

 

 

imadjust  stretchlim  Imhist در متلب

تصویر3 تیره تر و 2 روشنتر

در معادله خطی (y شیب خط ) :

فرمول شیب خط در متلب

 منحنی اشباع شده :

 توان گامائ آن فرمول متلب میشود :

 حالت خطی گامائ یک تصویر نرمال .

گامائ بیشتر از یک رنگ تیره ترتصویر 3 .

گامائ کمتر از یک رنگ روشنترتصویر2 .

گاما  همه حالتها را پوشش میدهد .

 گاما ی صفر  همان گامائ کمتر از یک محسوب میشود .

توسعه کنتراست مربوط به توابع  imadjust , stretchlim میباشد .

هر چه پراکندگی واریانس رابیشتر کنیم وضوح تصویر بیشتر میشود .

  1. >> A = magic (5)

راه های تبدیل ماتریس 5 × 5 به بردار :

راه اول جستجوی ریشه A که حاصل آن ماتریسی با یک سطر و هر تعداد ستون است .

  1. >> reshape (A , 1 , [ ] )

راه دوم  ماتریسی با یک ستون با هر تعداد سطر .

  1. >>reshape (A , [ ] , 1 )

 راه میانبری که تمامی اعضای A را با بردار عمودی نمایش میدهد .

  1. >> A ( : )

ساده ترین راه تبدیل ماتریس به بردار در متلب تابع Imhist میباشد .

  1. >>hist (img 1 ( : ) )

Error using

به دابل تبدیل میکنیم برای این که Error ندهد .

 

  1. >> hist (double (img ( : ) ) )

 خود نرم افزار اتو مات رسم میکند .

 

نمودار تابع Imhist در متلب

 

 

  1. >> hist (double ( img 1 ( : ) ) , 50 )
    >> hist (double (img ( : ) ) , 100 )
    >> hist (double ( img 1 ( : ) ) , 256 )

 

نمودار تابع Imhist در متلب

  1. >> Xlim ( [ 0 255 ] )

تمرکز تصویر روی وسط نمودار است  Imag Histogram میزان روشنایی تقسیم شده در تصویر را نمایش میدهد .

  1. Imhist
    Display histogram of image data
    Syntax
    Imhist ( I )
    Imhist ( I , n )
    Imhist ( x , map )
    [counts , x ] = imhist ( … )

اجرا به سه روش اول باعث ترسیم نمودار میشود .

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

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

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

 

  1. Figure ;
    Subplot ( 2 , 2 , 1 ) ;
    Imhist ( img 1 , 256 ) ;
    Title ( ‘ Original  Image ‘ ) ;
    
    Subplot ( 2 , 2 ,2) ;
    Imhist ( img 2 , 256 ) ;
    Title ( ‘ Result of imadjust ‘ ) ;
    
    Subplot ( 2 , 2 ,3) ;
    Imhist ( img 3 , 256 ) ;
    Title ( ‘ Result of imadjust  ( 2 ) ‘ ) ;
    
    Subplot ( 2 , 2 ,4 ) ;
    Imhist ( img 4 , 256 ) ;
    Title ( ‘ Result of imadjust  ( 3 ) ‘ ) ;

imadjust  stretchlim  Imhist در متلب

با استفاده همه طیف های رنگی ترکیب تفکیکی بیشتری به دست می آوریم .

ادامه در مبحث 4

 

دیدگاه ها بسته شده است