-
تعداد ارسال ها
64 -
تاریخ عضویت
-
آخرین بازدید
تمامی مطالب نوشته شده توسط SAMA.FA
-
سلام از فیلترگابور که از فرکانس بالا و انرژی بردار وِژگی استخراج کردم ولی چون ابعاد برداری که از فیلتر بدست میاد زیاده برای اینکه کاهش ابعاد رو بردار انجام بدیم از PCAاستفاده می کنم ولی وقتی پارامتر بردار در کد PCA بعنوان ورودی قرار میدهم خطا میده لطفا یکی بگه چیکار کنم تا خطاش رفع شه ممنون کد :S=همون بردار ویژگی data=(S); % artificial data set of 100 variables (genes) and 10 samples [W, pc] = princomp(data'); pc=pc'; W=W'; plot(pc(1,:),pc(2,:),'.'); title('{\bf PCA} by princomp'); xlabel('PC 1'); ylabel('PC 2') % consider an artificial data set of 100 variables (e.g., genes) and 10 samples data=(S); % remove the mean variable-wise (row-wise) data=data-repmat(mean(data,2),1,size(data,2)); % calculate eigenvectors (loadings) W, and eigenvalues of the covariance matrix [W, EvalueMatrix] = eig(cov(data')); Evalues = diag(EvalueMatrix); % order by largest eigenvalue Evalues = Evalues(end:-1:1); W = W(:,end:-1:1); W=W'; % generate PCA component space (PCA scores) pc = W * data; % plot PCA space of the first two PCs: PC1 and PC2 plot(pc(1,:),pc(2,:),'.') وقتی این کد اجرا میکنم برداری که بدست میاد تمام اعداد ماتریس صفر میشه وقتی بجای data'=S قرار میدم خطای زیر میاد : خطا: Index exceeds matrix dimensions
-
ممنون بله ازهمون آدرس دانلود کردم. فقط طریقه استفاده شو نمیدونم اگه میشه در این باره راهنمایی کنید؟
- 32 پاسخ
-
- 2
-
-
- add path
- adding new toolbox to matlab
- (و 9 مورد دیگر)
-
باسلام من تولباکس Kevin Murphyدارم ولی نمیدونم چطوری ازش استفاده کنم اگه کسی اطلاعاتی از تولباکس داره که بتونه بهم کمک کنه خیلی ممنون میشم فقط اگه میشه زودتر جواب دهید
- 32 پاسخ
-
- 3
-
-
- add path
- adding new toolbox to matlab
- (و 9 مورد دیگر)
-
باسلام وخسته نباشید من درزمینه تشخیص چهره با مدل مارکوف مخفی شبیه سازی دارم که یه سری از کاراشو انجام دادم حالا در آموزش و تست مدل مارکوف مخفی به بن بست رسیدم آیا کسی میتونه تو این زمینه بهم کمک کنه ؟؟؟؟؟ممنون میشم یکی کمک کنه
-
- 1
-
-
ایراد کد زیر چیه که موقع اجراخطا میده:از mean2 به پایین به تنهایی جواب میده ولی وقتی که میخوام دنباله کد مربوطه اجرا شه خطا میده close all; clear all; clc; I = imread('D:\image\roz.png'); I2 = imcrop(I,[20.7 46.6 50 50]); I2 = rgb2gray(I2); I2 = im2double(I2); [R C]=size(I2); % R = 128; % C = 128; Kmax = pi/3 ; f = sqrt(1 ); Delt = 2*pi/3; Delt2 = Delt * Delt; % 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 lambda = 8; theta = 0; psi = [0 pi/2]; gamma = 2; bw = 1; N = 8; img_in = im2double(imread('D:\image\roz.png')); img_in(:,:,2:3) = []; % discard redundant channels, it's gray anyway img_out = zeros(size(img_in,1), size(img_in,2), N); for n=1:N gb = gabor_fn(bw,gamma,psi(1),lambda,theta)... + 1i * gabor_fn(bw,gamma,psi(2),lambda,theta); % gb is the n-th gabor filter img_out(:,:,n) = imfilter(img_in, gb, 'symmetric'); % filter output to the n-th channel theta = theta + 2*pi/N; % next orientation end figure(1); imshow(img_in); title('input image'); figure(2); img_out_disp = sum(abs(img_out).^2, 3).^0.5; % default superposition method, L2-norm img_out_disp = img_out_disp./max(img_out_disp(:)); % normalize figure(6); imshow(img_out_disp); title('gabor output, L-1 super-imposed, normalized'); IGW=conv2(I2 ,GW,'same'); figure ( 3 ); subplot( 5, 8, v * 8 + u ),imshow ( abs( IGW ) ,[]); end end g = mean2(img_out_disp); k=16; img_out_disp(size(img_out_disp,1),:)=[]; img_out_disp(:,size(img_out_disp,2))=[]; [h,w]=size(img_out_disp); n = 1; for i=1:k:h for j=1:k:w imblock=img_out_disp(i:i+k-1,j:j+k-1); if nnz(imblock>g)>0 S(n) = sum(imblock(imblock>g)); else S(n) = k * g; end n = n+1; end end subplot(2,2,[3 4]) % reshape(S,h/16,w/16)' imshow(S,[],'InitialMagnification','fit') subplot(222) imshow(reshape(S,h/16,w/16)',[],'InitialMagnification','fit')
- 90 پاسخ
-
- 3
-
-
اخه من تصویر میخوام به بلوکهای 16*16 تقسیم بشه پس باید چیکار کنم؟؟؟
- 90 پاسخ
-
- 1
-
-
چرا این کد خطا میده بنظرتون؟؟ clear; img = imread('D:\image\roz.png'); figure; subplot(121) imshow(img) g = mean2(img); k=16; [h,w]=size(img); n = 1; for i=1:k:h for j=1:k:w imblock=img(i:i+k-1,j:j+k-1); if nnz(imblock>g)>0 S(n) = sum(imblock(imblock>g)); else S(n) = k * g; end n = n+1; end end subplot(122) imshow(reshape(S,h/16,w/16)',[],'InitialMagnification','fit') اینم خطاش؟ Index exceeds matrix dimensions.
-
خب من اول باید میانگین تصویر بدست بیارم بعد چیکار کنم راهنمایی کنید؟
- 90 پاسخ
-
- 1
-
-
خب چطوری تعداد ورودی هارو کمتر کنم؟؟
- 90 پاسخ
-
- 1
-
-
من یه کد دیگه هم برای فیلتر بالاگذر گوسی نوشتم ولی موقع اجرا ارور میده نمیدونم چهجوری ارورشو درست کنم؟؟؟ کد: f=im2double(imread('D:\image\roz.png')); f = rgb2gray(f); f=imresize(f,[92 112]); PQ=paddedsize(size(f)); D0=0.5*PQ(1); PQ(1)=PQ(2); H=hpfilter('gaussian',PQ(1),PQ(2),D0); g=dftfilt(f,H); figure,imshow(g,[]) خطا: Error using hpfilter Too many input arguments.
- 90 پاسخ
-
- 1
-
-
high_filter بالاگذر خب اول رو گوسین تبدیلات انجام دادم بعد بالاگذر بعد بالاگذر و گوسین باهم کانوال کردم شده فیلتربالاگذر گوسی بعد از طریق بردارویژه ،بردار فیلتر بالاگذر گوسی رو بدست اوردم. بنظرتون برداری که بدست اوردم درسته؟ ضمنا گفتین میانگین مقایسه ،میشه واضحتر بگین .
- 90 پاسخ
-
- 1
-
-
اینم متن انگلیسی: 1. Find α g = [mean of (GF)]. 2. For each block B of size k×k pixels, find pixels (x, y) in B such that G x y g F , , then consider the sum of all the pixels that satisfy the above criteria consider the sum as S G F x , y . 3. If no such pixel exists then take S=k × α g , where k is a constant, here k is taken as the block size. 4. Store S i.e., the feature points into the column vector i O . 5. Repeat step 2 to step 4 for all the blocks. End
- 90 پاسخ
-
- 1
-
-
برای استخراج بردارویژگی فیلتربالاگذرگوسی این کد درسته؟؟؟ clc; clear; a=im2double(imread('D:\image\roz11.png')); a = rgb2gray(a); figure,imshow(a),title('main image','fontsize',15); H =fspecial('gaussian' ,[16 16],2); hpg= imfilter(a,H); figure,imshow(hpg),title('matlab gausian filter','fontsize',15); [m,n]=size(a); high_filter=zeros(m,n); f_transform=fft2(a); f_shift=fftshift(f_transform); p=m/2; q=n/2; d0=70; for i=1:m for j=1:n distance=sqrt((i-p)^2+(j-q)^2); high_filter(i,j)=exp(-(distance)^2/(2*(d0^2))); end end temp=high_filter.*f_shift; x=real(ifft2(double(temp))); figure,imshow(x,[]),title('my high pass gaussian filter','fontsize',15); A=conv2(H,x,'same'); [u R]=eig(A) (B=eig(A
- 90 پاسخ
-
- 1
-
-
آیا این درسته برای مرحله 2؟ g=mean2(img_out_disp); im=imread('D:\image\roz12.png'); im=imresize(im,[92 112]); im=rgb2gray(im); k=1:16; [h,w]=size(im); for i=1:15:h-15 for j=1:15:w-15 imblock=im(i:i+15,j:j+15); s=sum(img_out_disp(:)); end end imshow(imblock)
- 90 پاسخ
-
- 1
-
-
خب پس میانگین چهجوری حساب میکنن؟؟این درسته؟ ;( g=mean2(img_out_disp
- 90 پاسخ
-
- 1
-
-
1. گفته میانگین اول حساب کن 2. برای بلوک k*k پیکسلهای بزرگتراز یک که میانگین حساب می کنیم بعد باهم جمع می کنیم ودر S قرار می دهیم 3. اگر پیکسلی نبود بجاش برای محاسبه k=g،S که K اندازه بلوک هاست 4. S رو به عنوان ویژگی توی بردار ستونی قرار می دهیم 5. مرحله 2 تا 4 را برای بلوک های دیگه حساب می کنیم. من اول میانگین تصویر خروجی حساب کردم;( g=mean(img_out_disp برای مرحله 2و3و4و5 چهجوری کد بنویسم؟؟؟؟
- 90 پاسخ
-
- 2
-
-
سلام چطوری میتونم از فیلتر گابور گوسی استخراج وِیژگی کنم؟
- 90 پاسخ
-
- 2
-
-
سلام کد فیلتر بالاگذر گوسی رو میشه در این تاپیک بگذارید ممنون
- 90 پاسخ
-
- 2
-
-
سلام از موجک گابور چطوری بردارویژگی استخراج میشه؟البته با اعمال L1-normبه کد موجک گابور
-
اضافه کردم ممنون برای 40 تاتصویر خروجی چطوری بردارویژگی حساب میشه؟
- 90 پاسخ
-
- 1
-
-
سلام این فعلا گابور حساب میکنه بعدگابور ویولت
- 90 پاسخ
-
- 1
-
-
بازم ممنون:icon_gol:
- 90 پاسخ
-
- 2
-
-
ممنــــــــــــــــــــــــــــــــــــــــــــــــــون دیگه مقدار S کد حساب میکنه؟ در خروجی دیگه تصویر کانوال نمیکنه مثل موجک ویولت که کانوال کرد 40تا تصویرمیداد؟
- 90 پاسخ
-
- 2
-
-
کد: 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
- 90 پاسخ
-
- 2
-
-
اون خطا اول درست شد ممنون ولی موندم چرا اصلا تو خروجی از تصویر خبری نیست؟؟؟؟ و کدوم خط میگه باهم برابر نیست a(i)=b؟؟؟؟؟؟؟؟؟؟؟؟؟
- 90 پاسخ
-
- 1
-
