۱۱-۱-۱۳۹۱, ۱۰:۴۴ بعد از ظهر
|
#1 (لینک دائم)
|
Super Moderator
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: دنیا
پست ها: 281
تشكرها: 28
253 تشكر در 147 پست
My Mood:
|
فشرده سازی فرکتالی تصاویر دیجیتال
فشرده سازی فرکتالی تصاویر دیجیتال
کلیه حقوق این اثر متعلق به وب سایت Artificial.ir می باشد
بخش اول: مقدمه ای بر فرکتالها
هندسه فرکتالی اولین بار توسط آقای پروفسور مندلبروت (Benoit Mandelbrot) در 1975 ارائه شد، این تئوری که به دلیل ناتوانی هندسه اقلیدسی در محاسبه و توصیف اجسام فرکتالی بیان شده است و بخوبی می تواند این اجسام را توصیف کند؛ فرکتالها (در فارسی: برخال) دارای ساختارهایی هستند که خود را در مقیاس کوچکتر تکرار می کنند این یکی از ویژگی های مهم فرکتال ها می باشد. بطور کلی تعریف فرکتال به شرح زیر است:
هر شیی که دارای سه ویژگی زیر باشد فرکتال می باشد
1- دارای ساختاری خودمتشابه باشد، یعنی قسمتهایی از تصویر همانند بخش های بزرگتری از تصویر باشد مانند گل کلم
2- بصورت تکراری قابل تولید باشد یعنی با تکرار بتوان آن شی را بازتولید کرد
3- بُعد آن شی اعشاری باشد (برای درک بهتر باید بدانیم خط دارای بعد یک است، صفحه بعد دو دارد و اشیاء یا حجم بعد سه دارند)
به ویژگی اول Self-Similarity ویژگی دوم Iterative Formation و ویژگی سوم Fractional Dimension می گوییم.
تشابه:
در واقع تشابه به یکسانی اجسام در اندازه های متفاوت گفته می شود بعبارت ساده تر اگر بتوان دو جسم را با کوچک یا بزرگ کردن بر هم منطبق کرد گوییم آن دو جسم متشابه هستند. باید توجه داشت شرط تشابه برای فرکتالها شرط لازم ولی غیرکافی است یعنی اجسام زیادی وجود دارند که متشابه هستند ولی فرکتال نیستند. تصویر1، خودتشابهی در یک پدیده فرکتالی را نشان می دهد.
شکل 1: خودتشایهی پدیده های فرکتالی
معرفی چند فرکتال مشهور فرکتالهای بسیاری از توجه ویژه برخوردارند در این میان نمونه های Sierpinski, Koch, Contour, Julia set که می توانید به سادگی تصاویر بسیاری زیادی از این فرکتالها را در اینترنت بیابید.
معرفی چند فرکتال مشهور
فرکتالهای بسیاری از توجه ویژه برخوردارند در این میان نمونه های Sierpinski, Koch, Contour, Julia set که می توانید به سادگی تصاویر بسیاری زیادی از این فرکتالها را در اینترنت بیابید.
محاسبه بُعد فرکتالی
روش های زیادی (بیش از 6 روش) برای محاسبه بعد فرکتالی موجود می باشد که ساده ترین آنها روش Box Counting (شمارش جعبه) می باشد که بشرح زیر می باشد.
تصویر شیی را در نظر بگیرید و آن تصویر را چنان مشبک فرض کنید که اندازه هر سلول برابر s (واحد) باشد، سپس سلول هایی را که شی یا بخشی از شی در آن قرار دارد را بشمارید تا مثلا عدد x1 بدست آید، سپس در گام دوم همین کار را مجدد تکرار کنید بنحویکه مقدار s را تغییر داده اید (مثلا دوبرابر شود) پس از حداقل 3 مرتبه، آنچه حاصل می شود شمارش باکس هایی است که با اندازه های متفاوت محاسبه شده اند.
فرض کردیم با سه مقیاس s1, s2, s3 کار شمارش جعبه های متاثر از شی را شمردیم و سه مقدار x1, x2, x3 را بدست آوردیم سپس مقدار log(x) و log(s) را برای هر سه مقیاس محاسبه میکنیم و در دستگاه متناظر رسم می کنیم، شیب خط گذرنده از نزدیکترین فاصله ممکن از این سه نقطه برابر بعد فرکتالی جسم موجود در آن تصویر می باشد. در این باره ویکیپدیا را ببینید.
در جزئیات پیاده سازی توجه کنید که معمولا شی را از پس زمینه در تصویر جدا می کنیم و سپس بُعد فرکتالی آن را محاسبه می کنیم با این حال می توان با یک حدآستانه بسادگی مفهومی مشابه (ولی نه چندان صحیح!) را به اجرا درآورد.
قطعه کد زیر یک الگوریتم مقدماتی و بهینه نشده برای محاسبه بُعد فرکتالی تصاویر می باشد، توجه شود بدلیل آنکه قصد نداشتیم به بحث تشخیص و جداسازی اشیاء وارد شویم از حد آستانه 128 در تصاویر دیجیتال استفاده کرده ایم.
كد:
clear all;
clc;
InPic=imread('C:\test.jpg');
[MM,NN,ZZ] = size(InPic);
if(ZZ>1)
pic=uint8(rgb2gray(InPic));
else
pic=uint8(InPic);
end;
%========================================================
% Preprocessing: Binarized input image
%========================================================
for i=1:MM-40
for j=1:NN-40
if(pic(i+20,j+20)<128)
imgBinary(i,j)=0;
end;
if(pic(i+20,j+20)>=128)
imgBinary(i,j)=255;
end;
end;
end;
%========================================================
% Computing fractal dimension with 5 scales
%========================================================
imgBinary=mat2gray(imgBinary);
imshow(imgBinary);
[M,N]=size(imgBinary);
for k=1:5 % scale
Sz=2*k;
sum=0;
for i=1:Sz:M-Sz
for j=1:Sz:N-Sz
flag=0;
mask((1:Sz),(1:Sz))=imgBinary((1:Sz)+i-1,(1:Sz)+j-1);
for p=1:Sz
for q=1:Sz
if(mask(p,q)==0)
flag=flag+1;
end;
end;
end;
if(flag>=Sz)
sum=sum+1;
end;
end;
end;
w(k,1)=Sz;
w(k,2)=sum;
x(k,1)=log10(1/Sz);
y(k,1)=log10(sum);
end;
m = robustfit(x,y) ;
%figure,plot(x,y,'o');
%figure,plot(x,y,'-');
result=m(2,1);
disp(result);
بخش دوم: پدیده فرکتال در تصاویر طبیعی
__________________
.
.
.
برای تشکر دکمه مخصوص وجود دارد لطفا پست هرز ایجاد نکنید
.
.
اینقدر از دسترسی نداشتن به مقاله شیون نکنید
مقالات انگلیسی: ایران سای (ISI, IEEE, ACM)
مقالات فارسی: سیویلیکا (کنفرانس داخلی)
مقالات فارسی: مگ ایران (ژورنالهای داخلی)
ويرايش شده توسط raha_hakhamanesh; ۱۱-۱-۱۳۹۱ در ساعت ۱۰:۴۶ بعد از ظهر
|
|
|