CiViL Engineering
اسرة ادارة منتدى CiViL Engineering ترحب بجميع الاعضاء والزوار
نتمنى ان نرى ابدعاتكم المتواصله
مع تحيات ادارة المنتدى
م/ أحمد الشافعى



 
الرئيسيةاليوميةمكتبة الصوربحـثالأعضاءالمجموعاتالتسجيلدخول




تنبيه هام :
الى جميع أعضاء المنتدى رجاء الانتباه نوجه عناية الجميع الى انه يوجد فى اسفل المنتدى " علبة الدردشة " التى تساعد على تواصل الاعضاء مع بعضهم البعض مباشرة

بشرى سارة :
حصريا على منتدى civil Engineering شرح مواد لطلبة الفرقة الاعدادية على هذا الرابط http://civileng.formyjob.net/montada-f7/topic-t58.htm#92

لحظة من فضلك : بعد تسجيلك عزيزى الزائر واشتراكك معنا فى المنتدى ستصلك رسالة تفعيل للاشتراك على الايميل الخاص بك يجب أولا فتحها وتفعيل الاشتراك مع خالص تحياتى

شاطر | 
 

 ماتلاب خش .......وجرب

اذهب الى الأسفل 
كاتب الموضوعرسالة
hishamabdo
عضو متميز
عضو متميز
avatar

عدد المساهمات : 372
عدد النقاط : 668
السٌّمعَة : 7
تاريخ التسجيل : 10/11/2009
العمر : 28
الموقع : hisham abdo facebook

مُساهمةموضوع: ماتلاب خش .......وجرب   الجمعة 24 ديسمبر 2010, 11:32 pm


السلام عليكم ورحمة الله وبركاته

انا هذيع الحلقة النهاردة من برنامج الماتلاب


والحلقة بعنوان
التصنيف
“ Classification “
الحلقة دي للاسف معانا ضيف رخم ...والحلقة شكلها هتطول


ضيفنا هو ... صورة كبيرة ورغاية , .. احنا عايزين ناخد من الضيف ده المفيد
والمفيد هو عملية التصنيف


نفهم الاول ازاي نتعامل مع الضيف ... نكرمه طبعا

احنا هنتعامل معاه من خلال برنامج عشان ناخد منه اللي احنا عايزينه

والبرنامج ده مكون من 5 مراحل

قبل ما نخش في البرنامج نفهم الاول الهدف منه ايه

ان احنا لو عندنا مثلا صورة لارض معينة .

.. والارض دي فيها مباني ومساحات خضرا وطرق وحاجات تانية كتييير

الهدف من العملية دي

ان احنا مثلا عايزين نطلع المباني بس من الصورة الاساسية في صورة لوحدها

نيجي بقى للبرنامج

البرنامج متقسم لـ 5 مراحل تمااام ؟؟

1- Load image

Building signature -2

Cell array names -3

Prepare data for classification -4

Look at the classified data -5

ناخد مرحلة مرحلة ونفهمها


المرحلة الاولى

(1) Load image

f=imread('D:\A.jpg');
f1=f(:,:,1);

ودي مرحلة تعريف ( الضيف بنفسه ) عرض وتسمية الصورة اللي احنا عايزين نصنف منها

وبعدين احنا عارفين ان اي صورة في الدنيا عبارة عن عدد من الطبقات منطبقين على بعض ... احنا في البرناج ده

هنتعامل مع طبقة واحدة بس ... ده لتسهيل البرنامج مش اكتر لكن في الحقيقة لازم نتعامل مع اكتر من طبقة وده لزيادة الدقة

نييجي للمرحلة التانية


(2) Building Signature

B=roipoly(f1);
[m,n]=size(f1);
B1=zeros(m,n);
for i=1:m
for j=1:n
if B(i,j)==1
B1(i,j)=f1(i,j);
end
end
end

المرحلة دي تعتبر مرحلة تحديد يدوي للي احنا عايزينه ...

قولتولي ازاي
اقولكوا ...

B=roipoly(f1);
الامر ده جامد جدا بيجيبلك الصورة اللي انت مدخلها اللي هي (f1)

وتحدد انت يدوي بالماوس يعني المنطقة اللي انت عايزها وليكن المباني بس لازم يبقى شكل مغلق

فــ توماتيكي كده لوحده المنطقة اللي انت حددتها كل بكسل فيها هيديها رقم (1) وكل بكسل برا التحديد هيديها رقم (0)
احنا كده يعتبر عملنا صورة جديدة كل بكسل فيها يا اما 1 يا اما 0
وسمينا الصورة دي(B)
تماااام ؟؟

[m,n]=size(f1);
وبعدين نحدد حجم الصورة الاساسية قد ايه ... عدد الصفوف والاعمدة


B1=zeros(m,n);

وبعدبن نكون صورة جديدة ليها نفس الحجم بتاع الصورة الاساسية

بس صورة فاضية كلها اصفار

الصورة دي --- هي اللي انا عايزها بس اكيد مش عايزها فاضية

عايزنها بعد ما نملاها ... ازاي هنعرف بعد شوية

for i=1:m
for j=1:n
if B(i,j)==1
B1(i,j)=f1(i,j);
end
end
end

ركزوا يا جماعة معايا في الجزء ده عشان مهم جدااا

هنعمل لووب للصفوف والاعمده .. تماااام وهنمشي بكسل بكسل

احنا دلوقتي عندنا كام صورة ... 3 تماااام

الصورة (B) اللي فيها منطقة التحديد وكل بكسل فيها 1 او 0

الصورة الاساسية (f1) " اللي مشرفانا "

الصورة الفاضية اللي انا كونتها (B1)

تخيلوا معايا كده ان احنا حطينا الـ3 صور دول فوق بعض بالترتيب كده زي ما انا كاتبهم

هناخد كل بكسل قيمته 1 في الصورة (B) اللي هي منطقة التحديد

وناخد الديجيتال نمبر بتاع البكسل المسقط في الصورة (f1)

ونسقطه في الصورة (B1)

يبقى احنا كده ملينا الصورة (B1) بمنطقة التحديد والديجيتال نمبر بناع كل بكسل فيها


N=m*n
VB1=[reshape(B1,N,1)];
VB1=VB1(VB1>0);
pause


هنعيد تشكيل الصورة (B1) اللي هي اساسا عبارة عن مصفوفة هنخليها فكتور واحد
عمود
وبعدين نخليه ياخد القيم اللي اكبر من 0 بس

يبقى احنا كده معانا الفيكتور (VB1) في قيم البكسل بتاعة منطقة التحديد بس

واخيييرا المرحلة دي خلصت
نييجي للمرحلة التالتة


(3) Cell array names

L1=length(VB1);
for i=1:L1
name1(i)=1
end
name1=name1'
pause
names=[name1;name2;name3];


المرحلة دي بسيطة اوي ... هي

تسمية منطقة التحديد مش اكتر بس نفهم هو عملها ازاي...

نجيب حجم الفيكتور اللي احنا طلعناه اللي هو كل بكسل فيه اسمه 1 ... بس كل

بكسل فيه ليه ديجيتال نمبر مختلف

ونعمل لووب ونسمي منطقة التحديد باسم معين

وبعدين نجيب الترانسبوز بتاع الفيكتور الجديد المتسمي

وبعدين ممكن نكرر المرحلة دي لو عايزين اكتر

من منطقة تحديد ..زي مثلا المباني ... الطرق ... وهكذا
بس خلاص المرحلة دي


نييجي للمرحلة الرابعة


4- Prepare data for classification


[nx,ny]=size(f1)
N=nx*ny;
Allpix=[reshape(f1,N,1)];
Allpix=double(Allpix);
signatures=double(signatures);
classifydata[class,misfit]=classify(Allpix,signatures)

المرحلة دي ماهي الا ..

نعيد شكل الصورة الاساسية (f1) نخليها كلها في فكتور واحد

Double ماهو الا زيادة الدقة في الديجيتال نمبر في كل بكسل

Signature لزيادة دقة التصنيف


classifydata[class,misfit]=classify(Allpix,signatures)

misfit بيظبط شكل البكسل يعني لو منطقة التحديد مثلا على شكل مثلث


فـ على طرف الشكل مش هياخد بكسل كامل ... هياخد نص بكسل

وبكدا الصورة اتصنفت بس هي دلوقتي ... على شكل فيكتور

عايزين نرجعها لصفوف واعمده تاني .... ده هيبقى في المرحلة الاخيرة


5- Look at the classified data


class=reshape(class,nx,ny)
map=[225,212,116;109,105,38;183,32,47]/255;
figure(2),clf,color(map)
image(class),colorbar
title('1=building,2=green area,3=roads');


المرحلة الاخييرة

اول حاجة عملناها في المرحلة دي خلينا الفيكتور في مصفوفة صفوف واعمده تاني

وبعدين ندخله الوان الصورة اللي احنا عايزينها ...على هيئة ارقام

وبعدين قسمنا على 255 لتوسيع الفروق بين الالوان

بعد كده
Clf : ده امر بتجهيز الصورة بالالوان اللي انا دخلتها

image(class),colorbar : ده بيجيبلي دليل الالون بتاع الخريطة


title('1=building,2=green area,3=roads');

وده بيوضحلي عناويين بتاع كل منطقة انا حددتها


وكده تبقى المراحل الخمسة خلصوا اخيييييييييييييرا



ملحوظة ....

اللي عنده ماتلاب على جهاز ضعيف الامكانيات ميحاولش يجرب البرنامج ده ...
الجهاز ممكن يشتمه

في نهاية الحلقة نشكر ضيفنا الرخم ... ونقوله متجيش هنا تاني
والسلام عليكم ورحمة الله وبركاته

اسيبكم مع ( التتر ) البرنامج كامل كله على بعضه


f=imread('D:\A.jpg');
f1=f(:,:,1);
% Building signature
B=roipoly(f1);
[m,n]=size(f1);
B1=zeros(m,n);
for i=1:m
for j=1:n
if B(i,j)==1
B1(i,j)=f1(i,j);
end
end
end
N=m*n
VB1=[reshape(B1,N,1)];
VB1=VB1(VB1>0);
pause
% cell array names
L1=length(VB1);
for i=1:L1
name1(i)=1
end
name1=name1'
pause
names=[name1;name2;name3];
% prepare data for classification
[nx,ny]=size(f1)
N=nx*ny;
Allpix=[reshape(f1,N,1)];
Allpix=double(Allpix);
signatures=double(signatures);
classifydata[class,misfit]=classify(Allpix,signatures)
% look at the classified data
class=reshape(class,nx,ny)
map=[225,212,116;109,105,38;183,32,47]/255;
figure(2),clf,color(map)
image(class),colorbar
title('1=building,2=green area,3=roads');







قال ابن حزم : " إياك وسؤال المتعنت ومراجعة المكابر، الذي يطلب الغلبة بغير علم، فهما خُلُقَا سوءٍ ودليلان على قلة الدين "


إن يعلموا الخير أخفوه وإن علموا ** شراً أذاعوا وإن لم يعلموا كذبوا

------------------------------------------

إن يسمعوا سبة طاروا بها فرحاً ** مني وما يسمعوا من صالح دفنوا

------------------------------------------

صمٌ إذا سمعوا خيراً ذكرت به ** وإن ذكرت بسوء عندهم أذنوا


الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://enghishamabdo.hooxs.com/
ahmed elshafey
المدير العام
المدير العام
avatar

عدد المساهمات : 515
عدد النقاط : 914
السٌّمعَة : 41
تاريخ التسجيل : 24/10/2009
العمر : 29
الموقع : https://www.facebook.com/ceng.a.elshafey

مُساهمةموضوع: رد: ماتلاب خش .......وجرب   السبت 25 ديسمبر 2010, 9:20 pm

يا ريت تدعم الموضوع بالصور ويا ريت بالتحديد صورة الضيف الرخم ده علشان نقدر نعرفه اكتر










الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://civileng.formyjob.net
 
ماتلاب خش .......وجرب
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
CiViL Engineering  :: الاقسام الدراسيه :: الفرقه الاعدادية ( قسم خاص )-
انتقل الى: