رفتن به مطلب

گابور


ارسال های توصیه شده

  • پاسخ 90
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

سلام چطوری بعداعمال موجک گابور روتصویر استخراج ویژگی بدست میاد؟

وچطور با میشه با40تا خروجی پیچیدگی یک تصویرگابور بدست آورد؟:banel_smiley_4:

 

سلام

توی صفحه اول این تاپیک یه توضیحاتی داده شده، فکر کنم بد نباشه که یه نگاهی بهش بندازی.

لینک به دیدگاه
سلام انرژی محلی و میانگین دامنه برای استخراج ویژگی فیلترگابور چهجور حساب میشه؟؟؟

 

سلام.

 

Local Energy = summing up the squared value of each matrix value from a response matrix

Mean Amplitude = sum of absolute values of each matrix value from a response matrix

 

لطفا خطوط آخر از پست دوم این صفحه رو بخونید:

 

 

http://www.noandishaan.com/forums/thread132953.html

لینک به دیدگاه
  • 4 هفته بعد...

سلام

ایراد کد کجاست که موققع اجرا خطا میده؟؟؟

کد:

 

close all;

clear all;

clc;

 

% Parameter Setting

Img = imread('D:\image\roz.png');

Img = rgb2gray(Img);

Img = im2double(Img)

[R C]=size(Img);

% R = 128;

% C = 128;

Kmax = pi / 3;

f = sqrt( 1 );

Delt = 2 * pi/3;

Delt2 = Delt * Delt;

% Img=Img(:);

 

% Show the Gabor Wavelets

for v = 0 : 4

for u = 1 : 8

GW = GaborWavelet ( R, C, Kmax, f, u, v, Delt2 ); % Create the Gabor wavelets

figure( 2 );

subplot( 5, 8, v * 8 + u ),imshow ( real( GW ) ,[]); % Show the real part of Gabor wavelets

 

IGW=conv2(Img,GW,'same');

% IGW=conv((Img),(figure ( 2 )));

figure ( 3 );

subplot( 5, 8, v * 8 + u ),imshow (abs( IGW ) ,[]);

end

 

% figure ( 4 );

% subplot( 1, 5, v + 1 ),imshow ( abs( GW ),[]); % Show the magnitude of Gabor wavelets

%

end

[n,m] = size(Img);

s = (n*m)/(u*v);

l = s*u*v;

featureVector = zeros(1,1);

c = 0;

for i = 1:u

for j = 1:v

 

c = c+1;

gaborAbs = abs(IGW);

gaborAbs = downsample(gaborAbs,u);

gaborAbs = downsample(gaborAbs.',v);

gaborAbs = reshape(gaborAbs.',[],1);

 

% Normalized to zero mean and unit variance. (if not applicable, please comment this line)

gaborAbs = (gaborAbs-mean(gaborAbs))/std(gaborAbs,1);

 

featureVector(((c-1)*s+1):(c*s)) = gaborAbs;

 

end

end

 

 

خطا:

 

Warning: Integer operands are required for colon operator when

used as index

In an assignment A(I) = B, the number of elements in B and I

must be the same.

لینک به دیدگاه
سلام

ایراد کد کجاست که موققع اجرا خطا میده؟؟؟

کد:

 

close all;

clear all;

clc;

 

% Parameter Setting

Img = imread('D:\image\roz.png');

Img = rgb2gray(Img);

Img = im2double(Img)

[R C]=size(Img);

% R = 128;

% C = 128;

Kmax = pi / 3;

f = sqrt( 1 );

Delt = 2 * pi/3;

Delt2 = Delt * Delt;

% Img=Img(:);

 

% Show the Gabor Wavelets

for v = 0 : 4

for u = 1 : 8

GW = GaborWavelet ( R, C, Kmax, f, u, v, Delt2 ); % Create the Gabor wavelets

figure( 2 );

subplot( 5, 8, v * 8 + u ),imshow ( real( GW ) ,[]); % Show the real part of Gabor wavelets

 

IGW=conv2(Img,GW,'same');

% IGW=conv((Img),(figure ( 2 )));

figure ( 3 );

subplot( 5, 8, v * 8 + u ),imshow (abs( IGW ) ,[]);

end

 

% figure ( 4 );

% subplot( 1, 5, v + 1 ),imshow ( abs( GW ),[]); % Show the magnitude of Gabor wavelets

%

end

[n,m] = size(Img);

s = (n*m)/(u*v);

l = s*u*v;

featureVector = zeros(1,1);

c = 0;

for i = 1:u

for j = 1:v

 

c = c+1;

gaborAbs = abs(IGW);

gaborAbs = downsample(gaborAbs,u);

gaborAbs = downsample(gaborAbs.',v);

gaborAbs = reshape(gaborAbs.',[],1);

 

% Normalized to zero mean and unit variance. (if not applicable, please comment this line)

gaborAbs = (gaborAbs-mean(gaborAbs))/std(gaborAbs,1);

 

featureVector(((c-1)*s+1):(c*s)) = gaborAbs;

 

end

end

 

 

خطا:

 

Warning: Integer operands are required for colon operator when

used as index

In an assignment A(I) = B, the number of elements in B and I

must be the same.

 

سلام

سما خانوم ببین، متن اخطار اول داره بهت میگه که وقتی از کالون (:) استفاده می کنی، نیاز هست که اعداد حتما صحیح باشن، و البته مثبت. ولی s توی اینجا اعشاری هست:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

بعد هم میگه تعداد دو طرف باید برابر باشه، یعنی تعداد درایه های آدرس دهی شده سمت چپ، با تعداد درایه های سمت راست مساوی برابر باشن.:a030:

لینک به دیدگاه
خب من چطوری میتونم رفع خطا کنم؟

 

به جای اون عبارتی که برای S نوشتی، S رو مساوی 345 قرار بده، این خط رو میگم:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه
باز خطا میده

خطا:

Error: The expression to the left of the equals sign is not a

valid target for an assignment.

درضمن تو خروجیش مگه نباید تصویرم کانوال کنه؟؟؟

 

چجوری تغییرش دادی؟

 

نمیدونم در مورد چی صحبت می کنی، کامل که کد رو بررسی نکردم، فقط گفتم چجوری مشکلش حل میشه.

لینک به دیدگاه
اون خطا اول درست شد ممنون ولی موندم چرا اصلا تو خروجی از تصویر خبری نیست؟؟؟؟

و کدوم خط میگه باهم برابر نیست a(i)=b؟؟؟؟؟؟؟؟؟؟؟؟؟

 

کدوم تصویر، یه بردار ویژگی حساب کردی که 11040 درایه داره.

 

کد جدیدت رو میذاری؟

لینک به دیدگاه

کد:

Img = imread('D:\image\roz.png');

Img = rgb2gray(Img);

Img = im2double(Img)

u=8;

v=5;

m=39;

n=39;

 

gaborArray = gaborFilterBank(5,8,39,39);

 

if (nargin ~= 4)

 

end

 

gaborArray = cell(u,v);

fmax = 0.25;

gama = sqrt(2);

eta = sqrt(2);

 

for i = 1:u

 

fu = fmax/((sqrt(2))^(i-1));

alpha = fu/gama;

beta = fu/eta;

 

for j = 1:v

tetav = ((j-1)/v)*pi;

gFilter = zeros(m,n);

 

for x = 1:m

for y = 1:n

xprime = (x-((m+1)/2))*cos(tetav)+(y-((n+1)/2))*sin(tetav);

yprime = -(x-((m+1)/2))*sin(tetav)+(y-((n+1)/2))*cos(tetav);

gFilter(x,y) = (fu^2/(pi*gama*eta))*exp(-((alpha^2)*(xprime^2)+(beta^2)*(yprime^2)))*exp(1i*2*pi*fu*xprime);

end

end

gaborArray{i,j} = gFilter;

 

end

end

 

 

figure('NumberTitle','Off','Name','Magnitudes of Gabor filters');

for i = 1:u

for j = 1:v

subplot(u,v,(i-1)*v+j);

imshow(abs(gaborArray{i,j}),[]);

 

 

end

end

 

 

figure('NumberTitle','Off','Name','Real parts of Gabor filters');

for i = 1:u

for j = 1:v

subplot(u,v,(i-1)*v+j);

imshow(real( gaborArray{i,j}),[]);

end

end

[u,v] = size(gaborArray);

gaborResult = cell(u,v);

for i = 1:u

for j = 1:v

gaborResult{i,j} = conv2(Img,gaborArray{i,j},'same');

% J{u,v} = filter2(G{u,v},I);

 

end

end

[n,m] = size(Img);

s=(n*m)/(u*v);

s=345;

l = s*u*v;

featureVector = zeros(l,1);

c = 0;

for i = 1:u

for j = 1:v

 

c = c+1;

gaborAbs = abs(gaborResult{i,j});

gaborAbs = downsample(gaborAbs,u);

gaborAbs = downsample(gaborAbs.',v);

gaborAbs = reshape(gaborAbs.',[],1);

 

% Normalized to zero mean and unit variance. (if not applicable, please comment this line)

gaborAbs = (gaborAbs-mean(gaborAbs))/std(gaborAbs,1);

 

featureVector(((c-1)*s+1):(c*s)) = gaborAbs;

 

end

end

لینک به دیدگاه
کد:

Img = imread('D:\image\roz.png');

Img = rgb2gray(Img);

Img = im2double(Img)

u=8;

v=5;

m=39;

n=39;

 

gaborArray = gaborFilterBank(5,8,39,39);

 

if (nargin ~= 4)

 

end

 

gaborArray = cell(u,v);

fmax = 0.25;

gama = sqrt(2);

eta = sqrt(2);

 

for i = 1:u

 

fu = fmax/((sqrt(2))^(i-1));

alpha = fu/gama;

beta = fu/eta;

 

for j = 1:v

tetav = ((j-1)/v)*pi;

gFilter = zeros(m,n);

 

for x = 1:m

for y = 1:n

xprime = (x-((m+1)/2))*cos(tetav)+(y-((n+1)/2))*sin(tetav);

yprime = -(x-((m+1)/2))*sin(tetav)+(y-((n+1)/2))*cos(tetav);

gFilter(x,y) = (fu^2/(pi*gama*eta))*exp(-((alpha^2)*(xprime^2)+(beta^2)*(yprime^2)))*exp(1i*2*pi*fu*xprime);

end

end

gaborArray{i,j} = gFilter;

 

end

end

 

 

figure('NumberTitle','Off','Name','Magnitudes of Gabor filters');

for i = 1:u

for j = 1:v

subplot(u,v,(i-1)*v+j);

imshow(abs(gaborArray{i,j}),[]);

 

 

end

end

 

 

figure('NumberTitle','Off','Name','Real parts of Gabor filters');

for i = 1:u

for j = 1:v

subplot(u,v,(i-1)*v+j);

imshow(real( gaborArray{i,j}),[]);

end

end

[u,v] = size(gaborArray);

gaborResult = cell(u,v);

for i = 1:u

for j = 1:v

gaborResult{i,j} = conv2(Img,gaborArray{i,j},'same');

% J{u,v} = filter2(G{u,v},I);

 

end

end

[n,m] = size(Img);

s=(n*m)/(u*v);

s=345;

l = s*u*v;

featureVector = zeros(l,1);

c = 0;

for i = 1:u

for j = 1:v

 

c = c+1;

gaborAbs = abs(gaborResult{i,j});

gaborAbs = downsample(gaborAbs,u);

gaborAbs = downsample(gaborAbs.',v);

gaborAbs = reshape(gaborAbs.',[],1);

 

% Normalized to zero mean and unit variance. (if not applicable, please comment this line)

gaborAbs = (gaborAbs-mean(gaborAbs))/std(gaborAbs,1);

 

featureVector(((c-1)*s+1):(c*s)) = gaborAbs;

 

end

end

 

خب کدت نسبت به حالت قبل خیلی تغییر کرده، مطمئنا اندازه بردار gaborAbs که بدست میاری دیگه 345 نمیشه، این خط های آخر رو اینجوری تغییر بده که دیگه این مشکل رو نداشته باشی:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

s رو اینجا مقدار دهی کنی.:a030:

لینک به دیدگاه

ممنــــــــــــــــــــــــــــــــــــــــــــــــــون:icon_gol: دیگه مقدار S کد حساب میکنه؟

در خروجی دیگه تصویر کانوال نمیکنه مثل موجک ویولت که کانوال کرد 40تا تصویرمیداد؟

لینک به دیدگاه
ممنــــــــــــــــــــــــــــــــــــــــــــــــــون:icon_gol: دیگه مقدار S کد حساب میکنه؟

در خروجی دیگه تصویر کانوال نمیکنه مثل موجک ویولت که کانوال کرد 40تا تصویرمیداد؟

 

خواهش می کنم، بله داخل حلقه اندازه بردار gaborAbs حساب میشه و به همون تعداد داخل بردار ویژگی شما (featureVector) درایه برای ذخیره سازی آدرس دهی میشه.

 

اون مرحله رو فکر کنم قبلش انجام دادین دیگه، اینجا ویژگی ها داره حساب میشه از اون خروجی ها اگه اشتباه نکنم.

لینک به دیدگاه
ممنــــــــــــــــــــــــــــــــــــــــــــــــــون:icon_gol: دیگه مقدار S کد حساب میکنه؟

در خروجی دیگه تصویر کانوال نمیکنه مثل موجک ویولت که کانوال کرد 40تا تصویرمیداد؟

 

برای این قسمت از کدت imshow رو اضافه کن تا کانولو رو ببینی عزیز:

 

for i = 1:u

for j = 1:v

gaborResult{i,j} = conv2(Img,gaborArray{i,j},'same');

% J{u,v} = filter2(G{u,v},I);

subplot(u,v,(i-1)*v+j);

imshow(abs(gaborResult{i,j}),[]);

end

end

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • اضافه کردن...