در این مبحث آشنا میشویم با :
1- CDF ( تابع تجمعی احتمال )
2- هیستوگرام هدف
3- تابع Hgram
4- تابع adapthisteq
توزیع ساده تر رابررسی میکنیم
CDF ( تابع تجمعی احتمال ) از کارآئی های آن یک تناظر یک به یک بین مقادیرتصادفی هرتوزیع آماری پیوسته برقرار میکند . شرط این که تابعی یک به یک باشد این است که اکیدا صعودی باشد شرط آن این است که مشتق آن همیشه مثبت باشد حتی صفر هم نباشد .
(PDF مشتق CDF است ) مقدار PDF اگر همیشه بزرگتر از صفر باشد CDF یک تابع اکیدا صعودی خواهد بود .
اگر هیستوگرام Uرا ترسیم کنیم یک خط صاف میشود یعنی یک کمیتی که تاجائی که امکان دارد به صورت یکنواخت از همه طیف های رنگی استفاده کرده این بهترین هیستوگرامی است که میشود از یک تصویر گرفت لذا هر تصویری که باشد CDF معادل با آن تصویر را حساب کنیم معادل با هر روشنائی u معادل را حساب کنیم این u ها را به جای x ها در آن تصویر استفاده کنیم یعنی نگاشت غیر خطی به این کار اصطلاحا هموار سازی یا یکنواخت سازی هیستوگرام گویند .
وقتی که هیستوگرام کوالیزیشن اتفاق میافتد نتیجه در تصاویر چه خواهد شد ؟
Histeq Syntax J = histeq ( I , hgram ) J = histeq ( I , n ) [ J , T ] = histeq ( I , … ) Newmap = histeq ( X , map , hgram ) Newmap = histeq ( X , map ) [ newmap , T ] = histeq ( X , … ) Img 4 = histeq ( img 1 )
لِوِلها نسبت به موارد دیگر خیلی به هم نزدیک شده از نظر یکنواختی بهتر است .
هیستوگرامش تبدیل شده به یک هیستوگرام نزدیک به خط عملا مساله بهینه سازی را به صورت سریع حل میکند .
اختلاف بینCDF یکنواخت ( تابع توزیع یکنواخت ) وتابع تولید را کم میکند چون برای تصاویرگسسته این امکان وجود ندارد (اگر تصاویر پیوسته بود میشد کاری کرد که حتما فِلَت شود)
تبدیل شده به یک مسئله هیستوگرام مچینگ (Histogram Matching) یک هیستوگرام مبدا را در نظر میگیرد اختلاف اینها را کمینه میکند.
I = imread ( ‘tire . tif ‘ ) ; J = histeq ( I ) ; Imshow ( I ) Figure , imshow ( J )
هیستوگرام کوالایز کاملا فِلَت نمیشود اما یک کاری میکند که اختلاف فلت و تصویر اصلی به کمترین میزان برسد .
کار دیگری که میتوان با تابع هیستیکیو(histeq (انجام داد این است که یک هیستوگرام هدف در نظر بگیریم وکاری کنیم که هیستوگرام ایمیج ورودی به این سمت میل کند اگر این را اختصاص دادیم همان هیستوگرام یکنواخت میشود اما اگر بخواهیم به سمت هیستوگرام هدف میل کند بسته به نوع کاربردی که مطرح هست این شکل میتواندتغییر کند .
این چیزی هست که با تابع هیستیکیو(histeq ) هم میتوانیم انجام دهیم . در این حالت (وقتی که J=histeq (I , hgram ) ) هست هیستوگرام ایمیج آن را طوری عوض میکنید که این هیستوگرام خروجی بشود همان (hgram ) که داریم و این بردار باید شامل یک سری اعداد صحیح باشد که تعداد مطلوب هر کدام از روشنائی ها را نشان بدهد ودر واقع برای تصاویرباینری اگر hgram برای یک تصویر یونیت 8 است باید بردار 256 اِلِمان داشته باشد اما برای تصاویر دابل باید تابع بدهید خود این تابع کاری میکند که مجموع اِلِمان های هیستوگرام برابر مجموع نقاط خود تصویرهم باشد برای اینکه اعداد هیستوگرام ی که داشتیم را با هم جمع بکنیم باید برابر تعداد پیکسل های تصویر باشد (مجموع فراوانی همه کلاس ها باهم میشود مجموع کل فراوانی )
در هیستوگرام هدف شدت نور تصاویر متلب وتابع Hgramاگر هیستوگرامی که به آن میدهیم نرمال شده نباشد خودش اینها را محاسبه و نرمال میکند .
%% Load Image Mu = 180 ; Sigma = 30 ; H=@(X) exp(-1/(2*sigma^2)*(x-mu).^2; X=0:255; Hgram=H(x); stem(x,hgram); npixel=numel(img1); >>size(img1) Ans= 291 240 >>291*240 Ans= 69840 >>prod(size)) Ans= 69840
اما به جای همه اینها میتوانیم بنویسیم
>>numel(img1) Ans = 69840
بایدکاری کنیم که مجموع Hgram بشود برابر npixel
Hgram= Hgram/sum(hgram); >>sum(hgram) Ans= 1.000 >>hgram=npixel*hgram/sun(hgram);
F5را بزنیم نمودار میاید و اعداد بزرگ میشوند.
مجموع این ها را بخواهیم حساب کنیم میشود
>>sum(hgram) Ans= 6.9840e+04
چون اعداد غیر صحیح هستند همه را به نزدیکترین عدد صحیح رُند میکنیم .
>>sum(hgram) Ans= 69832 >>npixel Npixel= 69840
در هیستوگرام هدف شدت نور تصاویر متلب وتابع Hgram وقتی هیستوگرام را به یک تصویر دیگراعمال کنیم :
Img2=histeq(img1,hgram);
% % show Results
Figure ;
Subplot ( 2 , 2 , 1 ) ;
imshow ( img 1 ) ;
title ( ‘ original Image ‘ ) ;
subplot ( 2 , 2 , 2 ) ;
imshow ( img 2 ) ;
title ( ‘ Result of histeq ‘ ) ;
subplot ( 2 , 2 , 3 ) ;
imhist ( img 1 ) ;
subplot ( 2 , 2 , 4 ) ;
imhist ( img 2 ) ;
شد تصویر پایین
میخواهیم دو تا قله داشته باشیم
Img 1 imread ( ‘ pout . tif ‘ ) ; Npixel 1 = nume 1 ( img 1 ) ; W 1 = 5 ; Mu 1 = 50 ; Sigma 1 = 30 ; W2 = 10 ; Mu 2 =180 ; Sigma 2 = 50 ; H = @ ( X ) w 1 * exp ( -1 / ( 2 * sigma 1 ^ 2 ) * ( x – mu 1 ) . ^ 2 ) +w 2 * exp ( -1 / (2 * sigma 2 ^ 2 ) * (x – mu 2 ) . ^ 2 ) ; X = 0 : 255 ; Hgram = H ( x ) ; Hgram = round ( npixe 1 * hgram / sum ( hgram ) ) ; Img 2 = histeq ( img , hgram ) ;
همچین شکلی اتفاق می افتد .
به هر حال با تغییراتی که بر هیستوگرام هدف شدت نور تصاویر متلب وتابع Hgramانجام میدهیم یک جاهائی هست که میتوانیم به یک شکل مطلوب برسیم چیزی که یک تفکیکی رابرای ما به شکل بهینه قائل میشود حالا چه طور میتوانیم این را به صورت بهترین هیستوگرام مبدا پیدا بکنیم ؟
از این توابع جهت شناسایی قاب پلاک در نرم افزارهای پلاک خوان پارکینگی و کنترل تردد خودرویی شهری استفاده میگردد. کنترل تردد پارکینگی را کنترل تردد پارکینگ هوشمند میگوییم.
به عنوان مثال انحراف معیار این را به میزان تفکیک پذیری به شکل یک تابع هدف در نظر گرفت وسپرد دست یک الگوریتم بهینه سازی (مثل الگوریتم کلاسیک یا الگوریتم ژنتیک )که پارامترهای این را طوری پیدا میکند که در خروجی ما بیشترین تفکیک پذیری را بین دو بخش از تصویر داشته باشیم .
دربحث هیستوگرام مچینگ از نظر تئوری تصویر را با هیستیکیو تبدیل میکند به یک تصویر با هیستوگرام یکنواخت و یکنواخت را هم تبدیل میکند به آن چیزی که ما میخواهیم در واقع دو بار کار تبدیل را انجام میدهد .
چیزی که از هیستوگرام هدف گفتیم با پیش زمینه ذهنی بیان میشود ما رفتار تصادفی ابجکت ها در شئر را با یک تابع توزیع احتمال تخمین میزنیم توصیف میکنیم بعد کار هیستوگرام کوالیزیشن را انجام میدهیم .
اما در کل یک ضعف هایی دارد که با استفاده از یک تکنیک دیگر بهبود دادند در این تکنیک تصویر را به یک سری بلوک تقسیم بندی میکنند وهیستوگرام کوالیزیشن را در هر بخش جداگانه انجام میدهند این طوری باعث میشود آن بلوکها هر کدام جداگانه عوض شوند وباعث میشود خط های تفکیک مشخص شوند برای این که این تفکیک ها را درست کنند بایک درون یابی خطی آن مرزها را جابه جا کرده کل این پروسه را در یک تابع بنام adapthisteq آوردند.
%%Load Image Img1 = imread ( ‘pout . tif ‘ ) ; Img2 = adapthisteq (img 1) ; %% Show Results Figure ; Subplot ( 2 , 2 , 1 ); Imshow (img 1) ; Title ( ‘ Original Image ‘) ; Subplot ( 2 , 2 , 2); Imshow (img2) ; Title ( ‘Result of adapthisteq ‘ );
جداگانه بخش های مختلف را آورده و به همچین مکانیزمی رسیده (خیلی مرکز گرا است)
در اینجا یک دسته از روش هایی که رفتار آماری وتوزیع آماری روشنائی و اینتنسیتی در تصویر را مورد بررسی و پراسس قرار میدهند را یک مرور کلی کردیم وهر امکاناتی که متلب در اختیار ما قرار داده بود را معرفی کردیم که بلوک های سازنده اپراتورهای خیلی بزرگتری هستند .
در سایر سایتها از ساخت پلاک خوان هوشمند در تولید کنترل تردد پارکینگ هوشمند با استفاده از هیستوگرام مطرح میشود.