PDA

View Full Version : rahnamaiy



sama.66
دوشنبه 07 مهر 1393, 17:32 عصر
سلام مهندس
استادم چندتافایل فرستاده واستون میزارم یه نگاهی بندازین

sama.66
جمعه 11 مهر 1393, 10:55 صبح
مهندس میشه راهنماییم کنید؟

rahnema1
جمعه 11 مهر 1393, 18:02 عصر
سلام
این هم مثل همون قبلی ها تفاوت چندانی نداره الان مشکل کجاست؟

sama.66
جمعه 11 مهر 1393, 18:54 عصر
rastesh yekami vasam mobhame, chetor azashun estefade konam

rahnema1
جمعه 11 مهر 1393, 19:05 عصر
شما شروع کنید هر جا اشکال داشتید بگید تا برطرف کنیم

sama.66
جمعه 11 مهر 1393, 19:08 عصر
alan in zernik be surate functione khob tasav
iro chetor bedam k bekhune

rahnema1
جمعه 11 مهر 1393, 19:13 عصر
فایل 5 را باز کنید دستورالعمل را در خط اول می بینید
function [A_nm,zmlist,cidx,V_nm] = zerniketest(img,n,m)
اولین پارامتر تابع یک تصویر هست و دومی هم که n هست. کافیه همین دو تا وارد بشه
تصویر ها هم که قبلا گفته بودم چه طور بخونید

sama.66
جمعه 11 مهر 1393, 19:19 عصر
khob n ro be in shekl neveshtam n=12
tasaviram k hamun cod ro neveshtam k bekhune vali in error ro mide


Error: File: Untitled10.m Line: 19 Column: 1
Function definitions are not permitted in this context.

rahnema1
جمعه 11 مهر 1393, 19:21 عصر
لطفا کدی که نوشتید را اینجا بذارید

sama.66
جمعه 11 مهر 1393, 19:26 عصر
ok.........................

rahnema1
جمعه 11 مهر 1393, 19:40 عصر
نه این جور که نمیشه. احتمالا شما هم فرصت یاد گرفتن متلب را نداشته باشید
یک سوال : اون برنامه قبلی که با local zernike moment بود را به درد نخورد؟ جوابها هم که خیلی خوب بود

sama.66
جمعه 11 مهر 1393, 19:42 عصر
oun khub bud vali ostad goftan bayad zarayebesho be in shekl be dast biyarim k ba code matlab bashe

rahnema1
جمعه 11 مهر 1393, 19:54 عصر
اون روش که استفاده کردیم با این روش که الان استاد شما گفته کمی متفاوته و چون حجم محاسبات در اون روش زیاد بود با متلب زمان زیادی می گرفت که کد ++c استفاده شد و فکر کنم جوابش هم بهتر باشه

فقط چند تا سوال دیگه: از استادتون بپرسید 1. آیا لازمه تصاویر قبل از ورود به زرنیک، به باینری ( سیاه و سفید) تبدیل بشن؟
2. آیا ضرایب زرنیک که به صورت مختلط هست قسمت حقیقی اون باید استفاده بشه یا قسمت موهومی؟

sama.66
جمعه 11 مهر 1393, 19:54 عصر
ok ta chan daghighe dg behetun etela midam

sama.66
جمعه 11 مهر 1393, 19:58 عصر
باینری باید باشه بعد گفتن می تونین abs بگیرین که اندازه بشه،دستور absمقدار اندازه ردپو حساب میکنه

rahnema1
یک شنبه 13 مهر 1393, 06:47 صبح
دو تا برنامه هست ابتدا در هر کدام از فولدر های پلاک و غیر پلاک وارد شوید و برنامه اول را برای هر کدام اجرا کنید. دو تا فایل به نام data.csv ایجاد میشه که اونها را به pelak.csv و nonpelak.csv تغییر نام بدید و هر دو را در یک فولدر دیگه بذارید و برنامه دوم را اجرا کنید

zdata=[];
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);
c=imread(file);
level=graythresh(c);
bwim=im2bw(c,level).*255;
tool=size(bwim,2);
arz=size(bwim,1);
m1=bwim(:,1:round(tool*3/7));
m2=bwim(:,round(tool*2/7)+1:round(tool*5/7));
m3=bwim(:,round(tool*4/7)+1:tool);
zimg=abs(zerniketest(bwim,12));
z1=abs(zerniketest(m1,12));
z2=abs(zerniketest(m2,12));
z3=abs(zerniketest(m3,12));
zdata = [zdata;[zimg z1 z2 z3]];
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);

sama.66
یک شنبه 13 مهر 1393, 12:57 عصر
ممنونم،این کد میاد فقط یه بارازتصویرخام زرنیک میگیره بعدش هم ازمربع های همپوشان،
وقتی از این کداولی استفاده میکنم فایلی که استادم داده رو هم توی همون فولدرقرار بدم؟

rahnema1
یک شنبه 13 مهر 1393, 21:57 عصر
ممنونم،این کد میاد فقط یه بارازتصویرخام زرنیک میگیره بعدش هم ازمربع های همپوشان،
1.( auc=90% شده اگه به جای سه قسمت به قسمتهای بیشتری تقسیم کنم امکان داره درصدم بیشتربشه؟)

2.اگه بخوام واسه مرحله ی بعدی کارم اول lbpبگیرم بعد ازروی lbp ضرایب زرنیکش روحساب کنم چطورمیشه؟
3.استادم گفته بودکه به صورت دستی داده های تست وترین رو بدم به کلاسیفایر(برای اینکه گزارش رو خوب بنویسم بایددستی اینکاروبکنم) بعدکلاساشوبگیرم بدم به roc که پلاتشو رسم کنم،ازکدی که خودش داده واسه کلاسیفایرمیشه استفاده کرد؟دراین موردم راهنماییم کنیدلطفا

1. معلوم نیست باید بررسی بشه
2. فکر نکنم جواب بهتری بده. باید بررسی بشه
3. ما که همین کار را کردیم و تست و ترین را دادیم به کلاسیفایر( فقط استادتون کدها را یه کم دیر ارائه کردند چون خودمون کدها را قبلا پیدا کرده و یا نوشته بودیم )
برای svm از libsvm استفاده کردیم که در اون مقاله هم از همین استفاده شده بود
از دستورات خود متلب هم جهت ایجاد roc استفاده کردیم

sama.66
یک شنبه 13 مهر 1393, 22:14 عصر
این کدی که شما لطف کردید فقط از تصویر خام هستش ,برای این مرحله میخوام برای lbpهم زرنیک بگیرم ( اول lbp بگیرم بعد ضرایب زرنیک رو از روی lbp حساب کنم )

rahnema1
دوشنبه 14 مهر 1393, 06:42 صبح
کد lbp سریع:
http://www.sharefile.ir/uploads/1412633663.zip

در کدهای زیر کد اول تصویر lbp را به باینری تبدیل نمی کنه
اما دومی ابتدا تبدیل به باینری می کنه و بعد زرنیک می گیره

map1=getmapping(8,'u2');
zdata=[];
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);
c=imread(file);
bwim=lbp(c,1,8,map1,'i');
tool=size(bwim,2);
arz=size(bwim,1);
m1=bwim(:,1:round(tool*3/7));
m2=bwim(:,round(tool*2/7)+1:round(tool*5/7));
m3=bwim(:,round(tool*4/7)+1:tool);
zimg=abs(zerniketest(bwim,12));
z1=abs(zerniketest(m1,12));
z2=abs(zerniketest(m2,12));
z3=abs(zerniketest(m3,12));
zdata = [zdata;[zimg z1 z2 z3]];
end
dlmwrite ( 'data.csv' , zdata);



map1=getmapping(8,'u2');
zdata=[];
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);
c=imread(file);
ILBP=lbp(c,1,8,map1,'i');
level=graythresh(ILBP);
bwim=im2bw(ILBP,level).*255;
tool=size(bwim,2);
arz=size(bwim,1);
m1=bwim(:,1:round(tool*3/7));
m2=bwim(:,round(tool*2/7)+1:round(tool*5/7));
m3=bwim(:,round(tool*4/7)+1:tool);
zimg=abs(zerniketest(bwim,12));
z1=abs(zerniketest(m1,12));
z2=abs(zerniketest(m2,12));
z3=abs(zerniketest(m3,12));
zdata = [zdata;[zimg z1 z2 z3]];
end
dlmwrite ( 'data.csv' , zdata);

sama.66
دوشنبه 14 مهر 1393, 12:21 عصر
1.واسه این کدو کدهای قبلی نیازهست که فایل zerniktestداخل همون فولدرباشه؟؟؟

2.دوباره مثل قبلی برای اینکه بدم به svm ازاین کداستفاده کنم؟

akdata= 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);

rahnema1
دوشنبه 14 مهر 1393, 13:50 عصر
بله مثل همون قبلیه و zerniktest هم همون جا باشه

sama.66
دوشنبه 14 مهر 1393, 14:37 عصر
مرسی یه راهنمایی دیگه بکنید لطفا که چجوری به جای 3مربع به مربع های بیشترتبدیل کنم

rahnema1
دوشنبه 14 مهر 1393, 17:39 عصر
مرسی یه راهنمایی دیگه بکنید لطفا که چجوری به جای 3مربع به مربع های بیشترتبدیل کنم


zdata=[];
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);
c=imread(file);
level=graythresh(c);
bwim=im2bw(c,level).*255;
tool=size(bwim,2);
arz=size(bwim,1);
tedade_moraba = 3;
n_zernik = 12;
zimg = abs(zerniketest( bwim,n_zernik));
moraba_koochek = tedade_moraba*2 + 1;
for m = (0:2:( moraba_koochek -3))
zimg=[zimg abs(zerniketest(bwim(: ,(round(tool* m/moraba_koochek)+ 1) :round(tool *(m + 3) /moraba_koochek)) ,n_zernik))];
end
zdata = [zdata; zimg];
end
dlmwrite ( 'data.csv' , zdata);

sama.66
جمعه 18 مهر 1393, 21:12 عصر
مهندس برای lbp هم کدش به به این صورت میشه؟

map1=getmapping(8,'u2');

zdata=[];

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);

c=imread(file);

ILBP=lbp(c,1,8,map1,'i');

level=graythresh(ILBP);

bwim=im2bw(ILBP,level).*255;

tool=size(bwim,2);

arz=size(bwim,1);
tedade_moraba = 3;

n_zernik = 12;

zimg = abs(zerniketest( bwim,n_zernik));

moraba_koochek = tedade_moraba*2 + 1;

for m = (0:2:( moraba_koochek -3))

zimg=[zimg abs(zerniketest(bwim(: ,(round(tool* m/moraba_koochek)+ 1) :round(tool *(m + 3) /moraba_koochek)) ,n_zernik))];

end

zdata = [zdata; zimg];

end

dlmwrite ( 'data.csv' , zdata);

rahnema1
جمعه 18 مهر 1393, 22:52 عصر
تکه تکه کردن lbp به صورت همپوشان کار درستی نیست. علتش عم اینه که تصویر lbp بعضی وقتها از تکرار چند تصویر اصلی در کنار هم ایجاد میشه و همپوشان کردن اون صحیح نیست

sama.66
جمعه 18 مهر 1393, 23:31 عصر
خب ما که یه بار به 3 قسمت تقسیم کردیم (3تاm)واسه اون مشکلی پیش نمیاد؟
بعداینکه اگه 3قسمت بشه درصدم میادپایین فقط با 30قسمت درصدم زیادمیشه

rahnema1
شنبه 19 مهر 1393, 08:28 صبح
همپوشان کردن تصویر ایجاد شده از lbp اشتباهه . تقسیم به سه تا هم اشتباه بود

sama.66
شنبه 19 مهر 1393, 10:33 صبح
اگه یادتون باشه ماطبق اون مقاله lbp برای چهره که به چندقسمت تقسیم کرده بود عمل کردیم یعنی اون مقاله هم به اشتباه این کاروکرده؟

rahnema1
شنبه 19 مهر 1393, 11:08 صبح
اگه یادتون باشه ماطبق اون مقاله lbp برای چهره که به چندقسمت تقسیم کرده بود عمل کردیم یعنی اون مقاله هم به اشتباه این کاروکرده؟

ببین، یه تصویر اصلی داریم که میشه تکه تکه کرد اما تصویر lbp را نمیشه تکه تکه کرد
توی اون مقاله در ابتدا تصویر را تکه تکه می کرد و بعد lbp می گرفت نه اینکه بخواد اول تصویر lbp را درست کنه و بعد اون را تکه تکه کنه. دقت!

sama.66
شنبه 19 مهر 1393, 12:22 عصر
1.درسته ولی کدی که واسه lbpدفعه اول طبق مقاله نوشتیم اون 3تا m بعدازlbp هستش یا اینکه من دارم اشتباه میکنم؟
2.اگه میشه این راهنمایی رو هم بکنید که چطوراول تکه تکه کنم بعدlbp بگیرم

rahnema1
یک شنبه 20 مهر 1393, 23:18 عصر
حق با شماست در اون مقاله اول lbp گرفته بود بعد تکه تکه کرده بود اما یک نکته که وجود داره اینه که تصویر در اونجا مربعی هست اما اینجا مستطیلیه که باعث میشه تصویر lbp از پلاک به صورت 3 تا پلاک چسبیده به هم در بیاد که برای همین بهتره اول تصویر تکه تکه بشه بعد lbp بگیریم

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;
n_zernik = 12;
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);

sama.66
دوشنبه 21 مهر 1393, 10:43 صبح
1.پس با این حساب این lbpاولی که نوشتیم درست نیست مشکل پیش میاد؟منظورم این برنامست



image_files=dir(fullfile(cd,'\*.jpg'));
mkdir('lbp');
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);

pelak=imread(file);
%pelak=rgb2gray(c);


tool=size(pelak,2);
arz=size(pelak,1);
map1=getmapping(8,'u2');
map2=getmapping(16,'u2');

Ilbp=LBP(pelak,1,8,map1,'i');
tool=size(Ilbp,2);
arz=size(Ilbp,1);
m1=Ilbp(:,1:round(tool*3/7));
m2=Ilbp(:,round(tool*2/7)+1:round(tool*5/7));
m3=Ilbp(:,round(tool*4/7)+1:tool);


bins = map1.num;
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)

H4=LBP(pelak,2, 8,map1,'h');
H5=LBP(pelak,2, 16,map2,'h');
figure,subplot(2,1,1),plot(H4),subplot(2,1,2),plot (H5)

H=[H1, H2, H3, H4, H5];
figure,plot(H);

filesave=strcat(current_directory,'\lbp\hist-',file_name,'.txt');
dlmwrite(filesave,H);
end

rahnema1
دوشنبه 21 مهر 1393, 19:06 عصر
اولی درست نیست همین آخری که نوشتم به کار ببرید ( به همون علتی که گفتم)

sama.66
سه شنبه 22 مهر 1393, 00:22 صبح
این که درست حله lbp همراه بازرنیک هستش،میخوام برنامه اولی رو تغییرش بدم چون یکمی مدل lbpگرفتنش متفاوت بوده که دراخرم باید جمع میکریم همشو.

rahnema1
سه شنبه 22 مهر 1393, 05:10 صبح
اصلا کد را نگاه کردید؟ زرنیک کجا بود؟ فقط lbp هست

sama.66
سه شنبه 22 مهر 1393, 11:55 صبح
ببخشید که اینقدمزاحمتون میشم ازتون ممنونم که باصبروحوصله جواب میدین من یکمی گیج شدم،خب شما توی این کدچون این رو نوشتید n_zernik = 12;،من فکر میکردم بعدازlbp زرنیک میگیره منظورم این کدهستش

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;
n_zernik = 12;
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);

rahnema1
سه شنبه 22 مهر 1393, 12:33 عصر
دو تای اولی که مشخص شد . این هم سومی

zdata=[];
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);
c=imread(file);
level=graythresh(c);
bwim=im2bw(c,level).*255;
tool=size(bwim,2);
arz=size(bwim,1);
tedade_moraba = 3;
n_zernik = 12;
zimg = [abs(zerniketest(lbp(bwim,2, 8,map1,'i'),n_zernik)) , abs(zerniketest(lbp(bwim ,2, 16,map2,'i',n_zernik)))];
moraba_koochek = tedade_moraba*2 + 1;
for m = (0:2:( moraba_koochek -3))
zimg=[zimg abs(zerniketest(lbp( bwim(: ,(round(tool* m/moraba_koochek)+ 1) :round(tool *(m + 3) /moraba_koochek)),1, 8,map1, 'i'),n_zernik))];
end
zdata = [zdata; zimg];
end
dlmwrite ( 'data.csv' , zdata);

sama.66
چهارشنبه 23 مهر 1393, 18:34 عصر
ممنونم،این ارور رو داد

Undefined function or variable 'map1'.

Error in Untitled8 (line 19)
zimg = [abs(zerniketest(lbp(bwim,2, 8,map1,'i'),n_zernik)) ,
abs(zerniketest(lbp(bwim ,2, 16,map2,'i',n_zernik)))];

منم بعدازzdata دوتادستورات map روگذاشتم ودوباره این اررو رو میده

Error using lbp (line 47)
Too many input arguments.

Error in Untitled8 (line 20)
zimg = [abs(zerniketest(lbp(bwim,2, 8,map1,'i'),n_zernik)) ,
abs(zerniketest(lbp(bwim ,2, 16,map2,'i',n_zernik)))];

rahnema1
چهارشنبه 23 مهر 1393, 22:09 عصر
zimg = [abs(zerniketest(lbp(bwim,2, 8,map1,'i'),n_zernik)) , abs(zerniketest(lbp(bwim ,2, 16,map2,'i'),n_zernik))];

sama.66
پنج شنبه 24 مهر 1393, 18:58 عصر
عذرمیخوام بازم،بتوضیح مرحله 1 به این صورت میشه؟

rahnema1
پنج شنبه 24 مهر 1393, 21:01 عصر
درسته فقط یک نکته را باید اضافه کنید که از بافت lbp به دست اومده از هر تصویر ،هیستوگرام تهیه می کنیم و اون هیستوگرامها را به هم متصل می کنیم

sama.66
جمعه 25 مهر 1393, 11:27 صبح
plot(zimg به صورت کلی نمایش میده،برای هرمرحله نمیشه جداهیستوگرامهارو پلات کنم ؟

rahnema1
جمعه 25 مهر 1393, 16:49 عصر
همون zdata شامل هیستوگرامها هست که تعدادشون خیلی زیاده همچنین در فایل data.csv ذخیره کردید

zdata = dlmread('data.csv');
for i = 1:size(zdata,1)
figure,plot(zdata(i,:))
end

sama.66
جمعه 25 مهر 1393, 17:04 عصر
درسته دفعه ی قبل برای مثلا یک پلاک میتونستم برای هرقسمتش پلات کنم
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)
به خاطر گزارش نوشتن بایدبرای یک پلاک هیستوگرام همه مراحلش رونمایش بدم.این کدی شمادادید مجموع هیستوگرامهارونمایش میده؟

rahnema1
جمعه 25 مهر 1393, 18:23 عصر
ببخشید در برنامه شماره 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)

sama.66
جمعه 25 مهر 1393, 21:31 عصر
متشکرم،یه سوال دیگه اگه تعداد مربع هارو بیشترکنم نیازی نیست جایی زبرنامه تغییرکنه؟؟

rahnema1
جمعه 25 مهر 1393, 22:16 عصر
نه مشکلی نیست

sama.66
شنبه 03 آبان 1393, 12:54 عصر
سلام مهندس من برای تحلیل دقیق برنامه ها چندتادیه سوال دارم بااجازتون میپرسم

درمورد تعدادمربع ها میخوام بدونم به چه صورت تقسیم شده متوجه اون قسمت ازکد نمیشم اگه میشه یه توضیح بدید بعداینکه چطوری میشه تصویرمربع هارو ببینم

rahnema1
شنبه 03 آبان 1393, 19:13 عصر
این کد را اجرا کنید خودتون متوجه می شید

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);

sama.66
دوشنبه 05 آبان 1393, 11:25 صبح
توی قسمت دوم برنامه(زرنیک)،zdata شامل هیستوگرامهای مربوط به زرنیک هستش و zimgهمان ضرایب زرنیک هست؟؟؟داده های جفتشون شبیه همه

rahnema1
دوشنبه 05 آبان 1393, 19:29 عصر
قسمت دوم کدوم برنامه؟
zdata که ماتریس هست که هر سطرش برابر با هیسو گرام یک تصویر هست
اما zimg فقط هیستوگرام یک تصویر داخلش قرار داده میشه
ترکیب zimg ها میشه zdata

sama.66
سه شنبه 06 آبان 1393, 12:36 عصر
منظورم برنامه ی زرنیک بوده میخواستم ببینم ضرایب زرنیک کجاسیومیشه

میشه راهنماییم کنید که چطوری میتونم مثلا هرکد رو به همراه svmتوی یک فایل داشته باشم نه اینکه بخوام یک کدرواجراکنم بعد بیام svm رو جدا اجراکنم

rahnema1
سه شنبه 06 آبان 1393, 19:53 عصر
هر دو کد را داخل یک فایل بذارید مشکل حل میشه

sama.66
سه شنبه 06 آبان 1393, 22:42 عصر
منظورم اینه که کدها به این شکل بشه: توی یک برنامه هم پلاک و هم غیرپلاک رو بخونه و data.csvمربوط به جفتشودرست کنه و بده به svm
همه ی اینا توی یک برنامه باشه نیازی نباشه هرکدام جدااجرابشه

rahnema1
چهارشنبه 07 آبان 1393, 18:26 عصر
الان مگه نتونستید اجرا کنید؟ اگه می خواهید به یکی دیگه بدید اجرا کنه یه سری توضیحات هم کنارش بذارید تا بتونه استفاده کنه

sama.66
چهارشنبه 07 آبان 1393, 21:45 عصر
نه ببینید کدهارو که جدااجرامیکنم مشکلی نیست
من میخوام به این شکل توی یک برنامه باشه


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);

rahnema1
پنج شنبه 08 آبان 1393, 12:22 عصر
از روی همون برنامه های قبلی انجام بدید
همین قدر که تونستید از اینها جواب بگیرید برای من کافیه
برای شما آرزوی موفقیت می کنم

sama.66
جمعه 09 آبان 1393, 19:10 عصر
مرسی مهندس خیلی زحمت کشیدیدمن که جواب گرفتم ولی کاش این اخرین لطفتون هم دریغ نمیکردیدبه همون صورتی که گفتم هرکدبتونه با یه دفعه اجراکردن ازدوتا فولدرپلاک و غیرپلاک تصویرروبخونه و دوتا فایل دیتا به اسم پلاک ونان پلاک درست کنه وهمونجا svmبگیره
که بتونم یه ساماندهی به برنامه بدم (اینجوری که هرکد بایدچنددفعه جدااجرابشه یه دفعه واسه پلاک یکبارواسه نان پلاک و یک دفعه هم واسه svm خیلی زمان بر هستش )اینجوری زمان اجرای برنامه پایینتر میادوبرای همه قابل اجرامیشه بدون توضیح اضافه

sama.66
سه شنبه 27 آبان 1393, 12:02 عصر
سلام مهندس
توی برنامه ی svm ماواسه ازمایش 620 تاداده ازپلاک و نان پلاک جداکردیم که به این صورت تشخیص داده میشه

Accuracy = 96.6129% (599/620) (classification)
از620 تا 599 تا رو تشخیص داده،سوال من اینه ازکجابایددونست چندتا از پلاک و چندتااز نان پلاک رو تشخیص داده؟؟چون این 599تاجمعشونه نمیشه تشخیص داد

sama.66
سه شنبه 19 اسفند 1393, 18:08 عصر
سلام
برای رسم منحنی roc وسطح زیرمنحنی باauc میشه راهنماییم کنید؟؟؟؟

hhamidy
چهارشنبه 09 اردیبهشت 1394, 20:49 عصر
khob n ro be in shekl neveshtam n=12
tasaviram k hamun cod ro neveshtam k bekhune vali in error ro mide


Error: File: Untitled10.m Line: 19 Column: 1
Function definitions are not permitted in this context.

سلام

میبخشید من متوجه نشدم که m,n چی هستن در این کد!

چرا n رو 12 در نظر گرفتین؟!

sama.fa
دوشنبه 14 اردیبهشت 1394, 20:46 عصر
باسلام من میخوام از فرکانس بالا رو تصویر استخراج ویژگی کنم (همون فیلتربالاگذر گوسی ) میشه بگید چطوری باید از فیلتربالاگذر گوسی بردارویژگی استخراج کنم؟؟؟؟؟؟؟

hhamidy
چهارشنبه 11 شهریور 1394, 17:21 عصر
دو تا برنامه هست ابتدا در هر کدام از فولدر های پلاک و غیر پلاک وارد شوید و برنامه اول را برای هر کدام اجرا کنید. دو تا فایل به نام data.csv ایجاد میشه که اونها را به pelak.csv و nonpelak.csv تغییر نام بدید و هر دو را در یک فولدر دیگه بذارید و برنامه دوم را اجرا کنید

zdata=[];
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);
c=imread(file);
level=graythresh(c);
bwim=im2bw(c,level).*255;
tool=size(bwim,2);
arz=size(bwim,1);
m1=bwim(:,1:round(tool*3/7));
m2=bwim(:,round(tool*2/7)+1:round(tool*5/7));
m3=bwim(:,round(tool*4/7)+1:tool);
zimg=abs(zerniketest(bwim,12));
z1=abs(zerniketest(m1,12));
z2=abs(zerniketest(m2,12));
z3=abs(zerniketest(m3,12));
zdata = [zdata;[zimg z1 z2 z3]];
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);

سلام.
امکانش هست بفرمایید دقیقا از چه تولباکسی استفاده کردید(مسیر نصبش رو).

من از این تولباکس استفاده کردم ولی ظاهرا درست پیش بینی رو نشون نمیده:

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.

میدونید مشکل کجاست؟!