ربط Excel بالــ matlab


(غــلا) #1


اريد المساعده فى ربط Excel بالـ matlab
فلقد طبقت تعليمه xlswrite
لتخزيبن الـ features “السمات” لصور المخزنه فى work
وبعد تطبيقها
تم التخزين فى Excel
قفط صف واحد و9 اعمده
وهذه هى التعليمه

 
 
[CENTER][SIZE=4][COLOR=purple]xlswrite('all_parameter', [m sgma v k sk md uniform uniform1 uniform3])[/color][/size][/center]
 
 

وهذه التعليمه داخل for من 1 الى 220

انا اريده ان يخزن 9 اعمده والتى تمثل عدد السمات
220صف والذى يمثل عدد الصور المخزنه فى work

طلبى هو : كيف اجعله يخزن سمات جميع الصور فى Excel

*وهل استطيع تخزين الصور الموجوده فى الـwork فى الــExcel
وتخزين اسماء الاشخاص اصحاب الصور
والسمات ايضا فى ملف Excel واحد

*وجعل الماتلاب ياخذ كل صوره جديده ويحسب لها السمات
ويقارنها بالسمات المخزنه فى الـ Excel
باستخدام داله corr2 لكل صف
وعند تطابق احد الصفوف مع سمات الصوره المدخله تماما
يظهر بيانات الشخص المخزنه بالـ Excel
ووقت الذى تم فيه ادخالها والتعرف عليها

اتمنى ممن لديه معرفه فى هذا الموضوع حتى لو بسيطه
ان يساعدنى

تمنياتى للجميع بالتوفيق
تحياتى
غــلا

(المهندس سعود) #2

تستطيعين عمل كل ذلك تقريبا
ولكن كيف يخزن الصور في الاكسل هذا ما لا افهمه


(غــلا) #3

انا اريد الماتلاب فقط للواجهات ولحساب السمات لذلك اريد الصور تكون مخزنه فى الاكسل
واذا كان حساب السمات وتخزينها فى الاكسل يكفى لمعرفه البصمه وتميزها ومعرفه هى لمن…فهذا هو المهم

(ايجيبت) #4

يا بشمهندسه كده انتي عاوزه الاكسل يشتغل كقاعده بيانات ودي اصلا مش من امكانيات الاكسل

عامه انا هحاول اعملك طلبك بس سؤال صغير

ايه هي السمات اللي عاوزه تسجليها

ربنا يوفقك


(غــلا) #5

انا المهم عندى انه السمات تتخزن كمصفوفه واقدر اقارن بينهم وبين السمات لصوره الجديده بتعليمه corr2
واظهر بيانات الشخص صاحب الصوره
حاولت اعملها بالماتلاب ما انعملت كلها
ففكرت اربطه بالاكسل
وتخزنت
عدا الصور و السمات لم تتخزن الا سمات الصوره الاخيره فقط
السمات التى اريد حسابها
1-المتوسط mean
2-الوسيط median
3-الانحراف المعيارى standard deviation
4-مقياس الالتواء skewness
5-التفلطح kurtosis
6-الاختلاف variance
7-uniform للمصفوفات rgb
فتصبح عدد الاعمده 9
وعملت smoothness ولكن خزنت اصفار كثيره فالغيتها


(ايجيبت) #6

يا بشمهندسه من فضلك

قوانين السمات اللي عاوزاها انا معرفهاش

فياريت القوانين للسمات مش لازم كلهم حتي

بس عشان اقدر اجرب عليهم

وان شاء الله يبقي فيه بصيص امل

الله يوفقك


(غــلا) #7

قوانبن السمات بكتب 1 مشان ما تتعذب معى
1-المتوسط
مجموع القيم / عددها
وفى داله جاهزه فى الماتلاب mean
وكذالك للانحراف std
ومشكووووووووور جدا

(ايجيبت) #8

يا بشمهندسه انا اعتبرت المتوسط هو مجموع قيم المصفوفه مقسومه علي عدد ارقامها

وبعدين مبدئيا عملت الكود ده للتجربه بس شوفيه وان شاء الله اتوقع انه ممكن يوصلك لمرادك

بفرض ان عندك فولدر فيه مجموعه من الصور هتشغلي الكود هيطلب منك صوره اختاري اي صوري من الفولدر اللي فيه الصور

     


clear
[b,a]=uigetfile({'*.jpg';'*.bmp';'*.png';'*.gif';'*.pbm';'*.pcx';'*.pgm';'*.pnm';'*.tif';'*.*'},'Select Photo');
info = imfinfo([a b]);
forma=info.Format;
f=dir(fullfile(a,['*' '.' forma]));
l=length(f);
s=['.' forma];
for i=1:l
    phot=imread([a f(i).name]);
    r=sum(sum(sum(phot)));
    [q,w]=size(phot);
    e=r/(q*w);   %mean
    mean(i,1)=e
    
end















(المهندس سعود) #9

الاخت العزيزه
اولا للتغلب على مشكلة التخزين نعمل الاتي :
انا افترضت تكون للصورة الاولى الارقام من واحد الى 9 وللصورة الثانية من 2 الى 10 والثالثه وهكذا …
ثم اردت تخزينها في ملف اسميته ريسلتز وفي ورقه عمل اسميتها شيت ون
شوفي الكود :

[FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]
clc
clear
[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][COLOR=#000000] i=1:5[/color]
x=i:i+8
first=strcat([/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'A'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],num2str(i));
xlswrite([/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'results'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],x,[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'sheet1'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],first)

[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]end
[/color][/size][/font][/color][/size][/font][/color][/size][/font]

(المهندس سعود) #10

ما عليكي ان تدمجي الكود على برنامجك بحيث تكون الارقام المخزنه هي السمات الحقيقيه
فهمت ؟؟؟


(المهندس سعود) #11

انا جاهز للتساؤلات
باذن الله


(غــلا) #12

[CENTER]مشكور مهندس ايجيبت
لكن لدى استفسار
اولا : هل من الممكن جعل الملف محدد فى البرنامج (اى ان البرنامج لا يطلب منى اختيار المجلد)

ثانيا:اتمنى لو تشرح لى الكود لانى طبقته و تنفذ بس ما فهمت فكرته
مشان اغيره على اساس المشروع
لك كل الشكر على المساعده وجعلها الله فى موازين حسناتك[/center]


(غــلا) #13

مشكور مهندس سعود
هذا الكود بعد ما دمجته مع الربط
بس طلع فيه خطأ وما تنفذ

 
[LEFT][SIZE=1][COLOR=purple]clc[/color][/size]
[SIZE=1][COLOR=purple]clear[/color][/size]
[SIZE=1][COLOR=purple]clear all[/color][/size]
[SIZE=1][COLOR=purple]for d=1:10[/color][/size]
[SIZE=1][COLOR=purple]name=strcat('image',int2str(d),'\image',int2str(d),'.jpg');[/color][/size]
[SIZE=1][COLOR=purple]im=imread(name); [/color][/size]
[SIZE=1][COLOR=purple]for w=1:21[/color][/size]
[SIZE=1][COLOR=purple] if w<=10[/color][/size]
[SIZE=1][COLOR=purple]im=imresize(im, [200 200]);[/color][/size]
[SIZE=1][COLOR=purple]im=imread (strcat('image11\',int2str(d),'\image00', int2str(w),'.jpg'));[/color][/size]
[SIZE=1][COLOR=purple] elseif w<=21[/color][/size]
[SIZE=1][COLOR=purple]for ee=350:360[/color][/size]
[SIZE=1][COLOR=purple]im=imread(strcat('image11\',int2str(d),'\image', int2str(ee),'.jpg'));[/color][/size]
[SIZE=1][COLOR=purple]end[/color][/size]
[SIZE=1][COLOR=purple] end[/color][/size]
[SIZE=1][COLOR=purple] end[/color][/size]
[SIZE=1][COLOR=purple]end[/color][/size]
[SIZE=1][COLOR=purple]for u=1:220[/color][/size]
[SIZE=1][COLOR=purple]im=imresize(im, [200 200]);[/color][/size]
[SIZE=1][COLOR=purple]i=double(im);[/color][/size]
[SIZE=1][COLOR=purple]id=i(:);[/color][/size]
[SIZE=1][COLOR=purple]m=mean(id);[/color][/size]
[SIZE=1][COLOR=purple]sgma=std(id);[/color][/size]
[SIZE=1][COLOR=purple]v=var(id);[/color][/size]
[SIZE=1][COLOR=purple]k=kurtosis(id);[/color][/size]
[SIZE=1][COLOR=purple]sk=skewness(id);[/color][/size]
[SIZE=1][COLOR=purple]md=median(id);[/color][/size]
[SIZE=1][COLOR=purple]f1=i(:,:,1);[/color][/size]
[SIZE=1][COLOR=purple]f2=i(:,:,2);[/color][/size]
[SIZE=1][COLOR=purple]f3=i(:,:,3);[/color][/size]
[SIZE=1][COLOR=purple]h1=imhist(f1);[/color][/size]
[SIZE=1][COLOR=purple]h2=imhist(f2);[/color][/size]
[SIZE=1][COLOR=purple]h3=imhist(f3);[/color][/size]
[SIZE=1][COLOR=purple]k1=size(h1);[/color][/size]
[SIZE=1][COLOR=purple]u=0;[/color][/size]
[SIZE=1][COLOR=purple]u1=0;[/color][/size]
[SIZE=1][COLOR=purple]u2=0;[/color][/size]
[SIZE=1][COLOR=purple]for i=1:k1[/color][/size]
[SIZE=1][COLOR=purple]u=u+h1(i).^2;[/color][/size]
[SIZE=1][COLOR=purple]u2=u2+h3(i).^2;[/color][/size]
[SIZE=1][COLOR=purple]u1=u1+h2(i).^2;[/color][/size]
[SIZE=1][COLOR=purple]end[/color][/size]
[SIZE=1][COLOR=purple]uniform=u;[/color][/size]
[SIZE=1][COLOR=purple]uniform1=u1;[/color][/size]
[SIZE=1][COLOR=purple]uniform3=u2;[/color][/size]
[SIZE=1][COLOR=purple]end[/color][/size]
[SIZE=1][COLOR=purple]for z=1:10[/color][/size]
[SIZE=1][COLOR=purple]aa={name};[/color][/size]
[SIZE=1][COLOR=purple]aa1=cell({'ghlaa','eman','mona','nuha','majdah','maha','farah','reem','abrar','bodoor'});[/color][/size]
[SIZE=1][COLOR=purple]aa2=cell({'Management','Accountings','Engineering','Maintenance','Blueprints','Security','Indentures and Purchases','Projects','Affairs of Staffers','Inspecting and Vetting on Products'});[/color][/size]
[SIZE=1][COLOR=purple]aa3=cell({'Manager','Staffer','Manager of Dept','Staffer','Assignee','Monitored','Staffer','Manager','Secretary','Staffer'});[/color][/size]
[SIZE=1][COLOR=purple]end[/color][/size]
[SIZE=1][COLOR=purple]a={'name of image','name','Department','job','m','sgma','v','k','sk','md','uniform','uniform1','uniform3';aa(z),aa1(z),aa2(z),aa3(z),m,sgma,v,k,sk,md,uniform,uniform1,uniform3};[/color][/size]
[SIZE=1][COLOR=purple]for i=1:230[/color][/size]
[SIZE=1][COLOR=purple]x=a;[/color][/size]
[SIZE=1][COLOR=purple]first=strcat('A',num2str(i));[/color][/size]
[SIZE=1][COLOR=purple]xlswrite('results',x,'sheet1',first)[/color][/size]
[SIZE=1][COLOR=purple]end[/color][/size][/left]
 

لا اعلم ما الخطأ
ثانيا: شو Aالموجوده داخل strcat (السطر شو فايدته)

مشكوووووووور جدا على المساعده والله يجازيك كل خير


(المهندس سعود) #14

لا استطيع ايجاد الخطأ الا اذا كتيتيه لنا

A الموجود ه تمثل موقع بداية التخزين في الاكسل وكل مرة تتغير من A1 الى A2 الى … A10


(غــلا) #15

السلام عليكم ورحمه الله وبركاته
الخطأ هو
??? Index exceeds matrix dimensions.

(المهندس سعود) #16

انسخي رسالة الخطأكاملة


(المهندس سعود) #17

اظن ان الخطأ في اخر فوور لووب
لماذا من واحد الى 230
اظن انها من واحد الى10


(غــلا) #18

رساله الخطأ هذه كامله

??? Index exceeds matrix dimensions.


(غــلا) #19

لان انا اريده يخزن السمات ل230 صوره
10 صور الاساسيه
وايضا لتدوير كل صوره وهو 22


(غــلا) #20

غيرت الــfor الاخيره من 1 الى 10
وايضا ظهر نفس الخطأ

??? Index exceeds matrix dimensions.