عذرمیخوام بازم،بتوضیح مرحله 1 به این صورت میشه؟
عذرمیخوام بازم،بتوضیح مرحله 1 به این صورت میشه؟
آخرین ویرایش به وسیله sama.66 : جمعه 22 اسفند 1393 در 16:22 عصر
درسته فقط یک نکته را باید اضافه کنید که از بافت lbp به دست اومده از هر تصویر ،هیستوگرام تهیه می کنیم و اون هیستوگرامها را به هم متصل می کنیم
plot(zimg به صورت کلی نمایش میده،برای هرمرحله نمیشه جداهیستوگرامهارو پلات کنم ؟
همون zdata شامل هیستوگرامها هست که تعدادشون خیلی زیاده همچنین در فایل data.csv ذخیره کردید
zdata = dlmread('data.csv');
for i = 1:size(zdata,1)
figure,plot(zdata(i,:))
end
درسته دفعه ی قبل برای مثلا یک پلاک میتونستم برای هرقسمتش پلات کنمH1=hist(m1(:), 0:(bins-1));
H2=hist(m2(:), 0:(bins-1));
H3=hist(m3(:), 0:(bins-1));
figure,subplot(3,1,1),plot(H1),subplot(3,1,2),plot (H2),subplot(3,1,3),plot(H3)
به خاطر گزارش نوشتن بایدبرای یک پلاک هیستوگرام همه مراحلش رونمایش بدم.این کدی شمادادید مجموع هیستوگرامهارونمایش میده؟
ببخشید در برنامه شماره 3 اشتباه رخ داده بود که اولی برنامه 3 و دومی برنامه ترسیم هیستوگرامها هست
zdata=[];
map1=getmapping(8,'u2');
map2=getmapping(16,'u2');
image_files=dir(fullfile(cd,'\*.jpg'));
current_directory=cd;
dimension=size(image_files);
number_of_samples=dimension(1);
tedade_moraba = 3;
n_zernik = 12;
moraba_koochek = tedade_moraba*2 + 1;
zer=@(bwim) abs(zerniketest(bwim,n_zernik));
for Q=1:number_of_samples
file_name =image_files(Q).name;
file= strcat(current_directory,'\',file_name);
c=imread(file);
level=graythresh(c);
bwim=im2bw(c,level).*255;
tool=size(bwim,2);
arz=size(bwim,1);
L1=lbp(c ,2, 8,map1,'i');
level=graythresh(L1);
bwim1=im2bw(L1,level).*255;
L2=lbp(c ,2, 16,map2,'i');
level=graythresh(L2);
bwim2=im2bw(L2,level).*255;
zimg = [zer(bwim1) , zer(bwim2)];
for m = (0:2:( moraba_koochek -3))
L=lbp(c(: ,(round(tool* m/moraba_koochek)+ 1) :round(tool *(m + 3) /moraba_koochek)),1, 8,map1,'i');
level=graythresh(L);
bwim=im2bw(L,level).*255;
zimg=[zimg zer(bwim)];
end
zdata = [zdata; zimg];
end
dlmwrite ( 'data.csv' , zdata);
اگه اسم فایل مورد نظر myfile.jpg باشه اینطور می شه
bwim=imread('myfile.jpg');
tool=size(bwim,2);
arz=size(bwim,1);
tedade_moraba = 3;
h1 = lbp(bwim,2, 8,map1,'h');
figure,plot(h1)
h2 = lbp(bwim ,2, 16,map2,'h');
figure,plot(h2)
zimg = [ h1, h2];
moraba_koochek = tedade_moraba*2 + 1;
for m = (0:2:( moraba_koochek -3))
h=lbp( bwim(: ,(round(tool* m/moraba_koochek)+ 1) :round(tool *(m + 3) /moraba_koochek)),1, 8,map1, 'h');
figure,plot(h)
zimg=[zimg h];
end
figure,plot(zimg)
متشکرم،یه سوال دیگه اگه تعداد مربع هارو بیشترکنم نیازی نیست جایی زبرنامه تغییرکنه؟؟
سلام مهندس من برای تحلیل دقیق برنامه ها چندتادیه سوال دارم بااجازتون میپرسم
درمورد تعدادمربع ها میخوام بدونم به چه صورت تقسیم شده متوجه اون قسمت ازکد نمیشم اگه میشه یه توضیح بدید بعداینکه چطوری میشه تصویرمربع هارو ببینم
این کد را اجرا کنید خودتون متوجه می شید
bwim = imread('myimage.jpg');
tool=size(bwim,2);
arz=size(bwim,1);
tedade_moraba = 3;
moraba_koochek = tedade_moraba * 2 + 1;
aks = 1;
for m = (0:2:( moraba_koochek -3))
subplot(1, tedade_moraba, aks)
imshow(bwim(: ,(round(tool* m/moraba_koochek)+ 1) :round(tool *(m + 3) /moraba_koochek)))
aks = aks + 1;
end
figure, imshow(bwimg);
توی قسمت دوم برنامه(زرنیک)،zdata شامل هیستوگرامهای مربوط به زرنیک هستش و zimgهمان ضرایب زرنیک هست؟؟؟داده های جفتشون شبیه همه
قسمت دوم کدوم برنامه؟
zdata که ماتریس هست که هر سطرش برابر با هیسو گرام یک تصویر هست
اما zimg فقط هیستوگرام یک تصویر داخلش قرار داده میشه
ترکیب zimg ها میشه zdata
منظورم برنامه ی زرنیک بوده میخواستم ببینم ضرایب زرنیک کجاسیومیشه
میشه راهنماییم کنید که چطوری میتونم مثلا هرکد رو به همراه svmتوی یک فایل داشته باشم نه اینکه بخوام یک کدرواجراکنم بعد بیام svm رو جدا اجراکنم
هر دو کد را داخل یک فایل بذارید مشکل حل میشه
منظورم اینه که کدها به این شکل بشه: توی یک برنامه هم پلاک و هم غیرپلاک رو بخونه و data.csvمربوط به جفتشودرست کنه و بده به svm
همه ی اینا توی یک برنامه باشه نیازی نباشه هرکدام جدااجرابشه
الان مگه نتونستید اجرا کنید؟ اگه می خواهید به یکی دیگه بدید اجرا کنه یه سری توضیحات هم کنارش بذارید تا بتونه استفاده کنه
نه ببینید کدهارو که جدااجرامیکنم مشکلی نیست
من میخوام به این شکل توی یک برنامه باشه
zdata=[];
map1=getmapping(8,'u2');
map2=getmapping(16,'u2');
image_files=dir(fullfile(cd,'\*.jpg'));
current_directory=cd;
dimension=size(image_files);
number_of_samples=dimension(1);
for Q=1:number_of_samples
file_name =image_files(Q).name;
file= strcat(current_directory,'\',file_name);
bwim=imread(file);
tool=size(bwim,2);
arz=size(bwim,1);
tedade_moraba = 3;
zimg = [lbp(bwim,2, 8,map1,'h') , lbp(bwim ,2, 16,map2,'h')];
moraba_koochek = tedade_moraba*2 + 1;
for m = (0:2:( moraba_koochek -3))
zimg=[zimg lbp( bwim(: ,(round(tool* m/moraba_koochek)+ 1) :round(tool *(m + 3) /moraba_koochek)),1, 8,map1, 'h')];
end
zdata = [zdata; zimg];
end
dlmwrite ( 'data.csv' , zdata);
pelakdata= dlmread( 'pelak.csv');
nonpelakdata= dlmread('nonpelak.csv');
xdataamoozesh=[pelakdata(1:440,:);nonpelakdata(1:800,:)];
xdataazmayesh=[pelakdata(441:end,:);nonpelakdata(801:end,:)];
groupamoozesh=[ones(440,1);zeros(800,1)];
groupazmayesh=[ones(220,1);zeros(400,1)];
miangin=mean(xdataamoozesh);
enherafmeyar=std(xdataamoozesh);
xdataamoozesh=bsxfun(@rdivide,bsxfun(@minus ,xdataamoozesh,miangin),enherafmeyar);
xdataazmayesh=bsxfun(@rdivide,bsxfun(@minus ,xdataazmayesh,miangin),enherafmeyar);
svmStruct = svmtrain2(groupamoozesh, xdataamoozesh);
[azmayesh, accuracy, dec_values] = svmpredict(groupazmayesh, xdataazmayesh, svmStruct);
[x,y,T,auc]=perfcurve(groupazmayesh ,azmayesh,1);
از روی همون برنامه های قبلی انجام بدید
همین قدر که تونستید از اینها جواب بگیرید برای من کافیه
برای شما آرزوی موفقیت می کنم
مرسی مهندس خیلی زحمت کشیدیدمن که جواب گرفتم ولی کاش این اخرین لطفتون هم دریغ نمیکردیدبه همون صورتی که گفتم هرکدبتونه با یه دفعه اجراکردن ازدوتا فولدرپلاک و غیرپلاک تصویرروبخونه و دوتا فایل دیتا به اسم پلاک ونان پلاک درست کنه وهمونجا svmبگیره
که بتونم یه ساماندهی به برنامه بدم (اینجوری که هرکد بایدچنددفعه جدااجرابشه یه دفعه واسه پلاک یکبارواسه نان پلاک و یک دفعه هم واسه svm خیلی زمان بر هستش )اینجوری زمان اجرای برنامه پایینتر میادوبرای همه قابل اجرامیشه بدون توضیح اضافه
سلام مهندس
توی برنامه ی svm ماواسه ازمایش 620 تاداده ازپلاک و نان پلاک جداکردیم که به این صورت تشخیص داده میشه
Accuracy = 96.6129% (599/620) (classification)
از620 تا 599 تا رو تشخیص داده،سوال من اینه ازکجابایددونست چندتا از پلاک و چندتااز نان پلاک رو تشخیص داده؟؟چون این 599تاجمعشونه نمیشه تشخیص داد
سلام
برای رسم منحنی roc وسطح زیرمنحنی باauc میشه راهنماییم کنید؟؟؟؟
باسلام من میخوام از فرکانس بالا رو تصویر استخراج ویژگی کنم (همون فیلتربالاگذر گوسی ) میشه بگید چطوری باید از فیلتربالاگذر گوسی بردارویژگی استخراج کنم؟؟؟؟؟؟؟
سلام.
امکانش هست بفرمایید دقیقا از چه تولباکسی استفاده کردید(مسیر نصبش رو).
من از این تولباکس استفاده کردم ولی ظاهرا درست پیش بینی رو نشون نمیده:
https://www.csie.ntu.edu.tw/~cjlin/libsvm/
وقتی از خود svm متلب هم استفاده می کنم، مرحله ی svmstruct=svmtrain(و... و همینطور و... out=svmclassify(svmstruct رو صحیح نشون میده اما زمیانی که پیش بینی رو میخوام:
)
predicate=svmPredict(out,testlabel, testsample);
پیغام میده که:
Error using svmPredict
Too many input arguments.
میدونید مشکل کجاست؟!