codesoso源码搜索_sorce code

hacker|
113

文章目录:

求源码搜搜codesoso的注册用户名

似乎不用激活邮箱,都可以用的喔。我刚刚都注册了,就可以用了。

求Smith圆图程序(用MATLAB或VB或VC)

%Victor Aprea Cornell University 6/27/02

%

%Usage: plotsmithchart(Zl,Zo)

% where Zl is the Load Impedence (possibly complex)

% and Zo is the Characteristic Line Impedence

% Plots a smith chart, along with the reflection coefficient circle

% and the line of intersection with resistive component equal to 1.

% plotsmithchart

% Without any parameters draws a blank smith chart.

% Wavelengths toward the generator are labeled around the perimeter

%

%For example: plotsmithchart(25,50)

% Draws a smithchart, calculates and plots the reflection coefficient

% for a characteristic impedence of 50 ohms and a load impedence of 25 ohms,

% and draws the line of intersection with the R=1 circle.

function answer = plotSmithChart(Zl,Zo);

constant = linspace(0,10,5);

phaseAngle = linspace(0,2*pi,50);

unitGamma = exp(j*phaseAngle);

%plot the unit circle in the complex plane

hold on;

plot(real(unitGamma),imag(unitGamma),'r');

%set(gcf,'Position',[0 0 1280 990]);

axis square

zoom on

axis([-1.1 1.1 -1.1 1.1]);

MAX=2001;

bound2=0;

bound3=0;

min_bound1=0;

min_bound2=0;

max_bound2=0;

H=0;

word=0;

Gr = linspace(-1,1,MAX);

hold on;

interval = [[.01:.01:.2],[.22:.02:.5],[.55:.05:1],[1.1:.1:2],[2.2:.2:5],[6:10],[12:2:20],[30:10:50]];

interval2= [[.01:.01:.5],[.55:.05:1],[1.1:.1:2],[2.2:.2:5],[6:10],[12:2:20],[30:10:50]];

%plot real axis

plot(Gr, zeros(1,length(Gr)),'r');

%equations were derived using the symbolic toolbox as follows

%solve('R=(1-Gr^2-Gi^2)/((1-Gr)^2+Gi^2)','Gi')

%bound was derived as follows

%solve('1/(R+1)*(-(R+1)*(R-2*R*Gr+R.*Gr^2-1+Gr^2))^(1/2)=0','Gr')

for R = interval2,

min_bound1 = (R-1)/(R+1);

if(R.2)

if(mod(R,.1)==0)

max_bound = (-1+2^2+R^2)/(2^2+R^2+2*R+1);

elseif(mod(R,.02)==0)

max_bound = (-1+.5^2+R^2)/(.5^2+R^2+2*R+1);

else

max_bound = (-1+.2^2+R^2)/(.2^2+R^2+2*R+1);

if(R==.05 | (R.151 R.149))

min_bound2 = (-1+.5^2+R^2)/(.5^2+R^2+2*R+1);

max_bound2 = (-1+1^2+R^2)/(1^2+R^2+2*R+1);

end

end

elseif(R1)

if(mod(R,.2)==0)

max_bound = (-1+5^2+R^2)/(5^2+R^2+2*R+1);

elseif(mod(R,.1)==0)

max_bound = (-1+2^2+R^2)/(2^2+R^2+2*R+1);

elseif(R==.25 | R==.35 | R==.45)

temp = (-1+.5^2+R^2)/(.5^2+R^2+2*R+1);

min_bound2 = max(min_bound1, temp);

max_bound = (-1+1^2+R^2)/(1^2+R^2+2*R+1);

elseif(R.5)

max_bound = (-1+.5^2+R^2)/(.5^2+R^2+2*R+1);

else

max_bound = (-1+1^2+R^2)/(1^2+R^2+2*R+1);

end

elseif(R5)

if(mod(R,2)==0)

max_bound = (-1+20^2+R^2)/(20^2+R^2+2*R+1);

elseif(mod(R,1)==0)

max_bound = (-1+10^2+R^2)/(10^2+R^2+2*R+1);

elseif(R2)

max_bound = (-1+5^2+R^2)/(5^2+R^2+2*R+1);

else

if(mod(R,.2)==0)

max_bound = (-1+5^2+R^2)/(5^2+R^2+2*R+1);

else

max_bound = (-1+2^2+R^2)/(2^2+R^2+2*R+1);

end

end

elseif(R10)

if(mod(R,2)==0)

max_bound = (-1+20^2+R^2)/(20^2+R^2+2*R+1);

else

max_bound = (-1+10^2+R^2)/(10^2+R^2+2*R+1);

end

else

if(R==10|R==20)

max_bound = (-1+50^2+R^2)/(50^2+R^2+2*R+1);

elseif(R==50)

max_bound = 1;

elseif(R20)

max_bound = (-1+20^2+R^2)/(20^2+R^2+2*R+1);

else

max_bound = (-1+50^2+R^2)/(50^2+R^2+2*R+1);

end

end

index = ceil((min_bound1+1)*(MAX-1)/2+1);

actual_value = Gr(index);

if(actual_valuemin_bound1)

index = index + 1;

end

MIN=index;

index = ceil((max_bound+1)*(MAX-1)/2+1);

actual_value = Gr(index);

if(actual_valuemax_bound)

index = index - 1;

end

MIN2 = ceil((min_bound2+1)*(MAX-1)/2+1);

actual_value = Gr(MIN2);

if(actual_valuemin_bound2 )

MIN2 = MIN2 + 1;

end

MAX2 = ceil((max_bound2+1)*(MAX-1)/2+1);

actual_value = Gr(MAX2);

if(actual_valuemax_bound2 )

MAX2 = MAX2 + 1;

end

r_L_a=1/(R+1)*(-(R+1)*(R-2*R.*Gr(MIN:index)+R.*Gr(MIN:index).^2-1+Gr(MIN:index).^2)).^(1/2);

r_L_b=-1/(R+1)*(-(R+1)*(R-2*R.*Gr(MIN:index)+R.*Gr(MIN:index).^2-1+Gr(MIN:index).^2)).^(1/2);

r_L_b(1)=0;

r_L_a(1)=0;

r_L_a2=1/(R+1)*(-(R+1)*(R-2*R.*Gr(MIN2:MAX2)+R.*Gr(MIN2:MAX2).^2-1+Gr(MIN2:MAX2).^2)).^(1/2);

r_L_b2=-1/(R+1)*(-(R+1)*(R-2*R.*Gr(MIN2:MAX2)+R.*Gr(MIN2:MAX2).^2-1+Gr(MIN2:MAX2).^2)).^(1/2);

r_L_a3=1/(R+1)*(-(R+1)*(R-2*R.*Gr(MIN2:index)+R.*Gr(MIN2:index).^2-1+Gr(MIN2:index).^2)).^(1/2);

r_L_b3=-1/(R+1)*(-(R+1)*(R-2*R.*Gr(MIN2:index)+R.*Gr(MIN2:index).^2-1+Gr(MIN2:index).^2)).^(1/2);

%fix resolution issues in .2-.5 range

if(~(R.2 R.5 ~(mod(R,.02)==0)))

if(R==1)

color = 'r';

else

color ='b';

end

plot(Gr(MIN:index),r_L_a(1:index-MIN+1),color,Gr(MIN:index), r_L_b(1:index-MIN+1),color);

if(R=1)

if(mod(R,1)==0)

word = [num2str(R) '.0'];

else

word = num2str(R);

end

if(mod(R,.1)==0)

set(text(Gr(MIN),0,word),'Rotation',90,'HorizontalAlignment','left','VerticalAlignment','bottom');

end

elseif(R=2)

if(mod(R,.2)==0)

if(mod(R,1)==0)

word = [num2str(R) '.0'];

else

word = num2str(R);

end

set(text(Gr(MIN),0,word),'Rotation',90,'HorizontalAlignment','left','VerticalAlignment','bottom');

end

elseif(R=5)

if(mod(R,1)==0)

set(text(Gr(MIN),0,[num2str(R) '.0']),'Rotation',90,'HorizontalAlignment','left','VerticalAlignment','bottom');

end

else

if(mod(R,10)==0)

set(text(Gr(MIN),0,num2str(R)),'Rotation',90,'HorizontalAlignment','left','VerticalAlignment','bottom');

end

end

elseif(R==.25 | R==.35 | R==.45)

plot(Gr(MIN2:index),r_L_a3,'b');

plot(Gr(MIN2:index),r_L_b3,'b');

end

if(R==.05 | (R.149 R.151))

plot(Gr(MIN2:MAX2),r_L_a2(length(Gr(MIN2:MAX2))-length(r_L_a2)+1:length(r_L_a2)),'b');

plot(Gr(MIN2:MAX2),r_L_b2(length(Gr(MIN2:MAX2))-length(r_L_b2)+1:length(r_L_b2)),'b');

end

end

%equations were derived using the symbolic toolbox as follows

%solve('2*Gi/((1-Gr)^2+Gi^2)=x','Gi')

%bound was derived as follows

%solve('1-X^2+2*X^2*Gr-X^2*Gr^2=0','Gr')

%solve('1/2/X*(2+2*(1-X^2+2*X^2*Gr-X^2*Gr^2)^(1/2))=(1-Gr^2)^(1/2)','Gr')

for X = interval,

inter_bound = (-1+X^2)/(X^2+1); %intersection with unit circle: all values must be less than this\

imag_bound = (-1+X)/X; %boundary of imagination: all values must be greater than this

angle_point = 0;

if(inter_bound ~= 0)

angle_point = sqrt(1-inter_bound^2)/inter_bound;

end

imag_bound_y = 1/2/X*(-2+2*(1-X^2+2*X^2.*inter_bound-X^2.*inter_bound.^2).^(1/2));

imag_rad = (imag_bound^2 + imag_bound_y^2)^(1/2);

condition = imag_rad 1;

if(inter_bound 1)

inter_bound = 1;

elseif(inter_bound -1)

imag_bound=-1;

end

if(imag_bound 1)

imag_bound = 1;

elseif(imag_bound -1)

imag_bound=-1;

end

%used solve function to find intersection of appropriate circle with corresponding hyperbolics

%solve('-1/(R+1)*(-(R+1)*(R-2*R*Gr+R*Gr^2-1+Gr^2))^(1/2)=1/2/X*(-2+2*(1-X^2+2*X^2*Gr-X^2*Gr^2)^(1/2))','Gr')

%The following conditional tree creates the internal bounding between the two types of curves for variable resolution

if(X.2)

if(mod(X,.1)==0)

max_bound = (-1+X^2+2^2)/(X^2+2^2+2*2+1);

elseif(mod(X,.02)==0)

max_bound = (-1+X^2+.5^2)/(X^2+.5^2+2*.5+1);

else

max_bound = (-1+X^2+.2^2)/(X^2+.2^2+2*.2+1);

end

elseif(X1)

if(mod(X,.2)==0)

max_bound = (-1+X^2+5^2)/(X^2+5^2+2*5+1);

elseif(mod(X,.1)==0)

max_bound = (-1+X^2+2^2)/(X^2+2^2+2*2+1);

elseif(X.5)

max_bound = (-1+X^2+.5^2)/(X^2+.5^2+2*.5+1);

else

max_bound = (-1+X^2+1^2)/(X^2+1^2+2*1+1);

end

elseif(X5)

if(mod(X,2)==0)

max_bound = (-1+X^2+20^2)/(X^2+20^2+2*20+1);

elseif(mod(X,1)==0)

max_bound = (-1+X^2+10^2)/(X^2+10^2+2*10+1);

elseif(X2)

max_bound = (-1+X^2+5^2)/(X^2+5^2+2*5+1);

else

if(mod(X,.2)==0)

max_bound = (-1+X^2+5^2)/(X^2+5^2+2*5+1);

else

max_bound = (-1+X^2+2^2)/(X^2+2^2+2*2+1);

end

end

elseif(X10)

if(mod(X,2)==0)

max_bound = (-1+X^2+20^2)/(X^2+20^2+2*20+1);

else

max_bound = (-1+X^2+10^2)/(X^2+10^2+2*10+1);

end

else

if(X==10|X==20)

max_bound = (-1+X^2+50^2)/(X^2+50^2+2*50+1);

elseif(X==50)

max_bound = 1;

elseif(X20)

max_bound = (-1+X^2+20^2)/(X^2+20^2+2*20+1);

else

max_bound = (-1+X^2+50^2)/(X^2+50^2+2*50+1);

end

end

inter_index = ceil((inter_bound+1)*(MAX-1)/2+1);

imag_index = ceil((imag_bound+1)*(MAX-1)/2+1);

index4 = ceil((max_bound+1)*(MAX-1)/2+1);

index1 = max(inter_index,imag_index); %maximum index for c,d

index2 = min(imag_index,inter_index); %minimum index for c,d

if(condition)

index3=imag_index;

else

index3=inter_index;

end

actual_value1 = Gr(index1);

actual_value2 = Gr(index2);

actual_value3 = Gr(index3);

actual_value4 = Gr(index4);

if((actual_value1 inter_bound index1 == inter_index)|(actual_value1 imag_bound index1 == imag_index))

index1 = index1 - 1;

end

if((actual_value2 inter_bound index2 == inter_index)|(actual_value2 imag_bound index2 == imag_index))

index2 = index2 + 1;

end

if((actual_value3 inter_bound index3 == inter_index)|(actual_value3 imag_bound index3 == imag_index))

index3 = index3 + 1;

end

if(actual_value4 max_bound)

index4 = index4 - 1;

end

MIN=index2;

MAX2=index1;

MAX3=index4;

MIN2 = index3;

% actual_value1 = Gr(MIN);

% actual_value2 = Gr(MAX2);

% MIN=1;

% MAX2=MAX;

% MIN2=1;

x_L_a = real(1/2/X*(-2+2*(1-X^2+2*X^2.*Gr(MIN2:MAX3)-X^2.*Gr(MIN2:MAX3).^2).^(1/2)));

x_L_b = real(1/2/X*(2-2*(1-X^2+2*X^2.*Gr(MIN2:MAX3)-X^2.*Gr(MIN2:MAX3).^2).^(1/2)));

x_L_c= real(1/2/X*(2+2*(1-X^2+2*X^2.*Gr(MIN:MAX2)-X^2.*Gr(MIN:MAX2).^2).^(1/2)));

x_L_d= real(1/2/X*(-2-2*(1-X^2+2*X^2.*Gr(MIN:MAX2)-X^2.*Gr(MIN:MAX2).^2).^(1/2)));

if(MIN2MAX3)

x_L_c(1)=x_L_b(1);

x_L_d(1)=x_L_a(1);

end

check1 = abs(round(10000*1/2/X*(-2-2*(1-X^2+2*X^2*inter_bound-X^2*inter_bound^2)^(1/2))));

check2 = abs(round(10000*(1-inter_bound^2)^(1/2)));

if(imag_bound -1 check1 == check2)

plot(Gr(MIN:MAX2),x_L_c,'g')

plot(Gr(MIN:MAX2),x_L_d,'g')

end

plot(Gr(MIN2:MAX3),x_L_a,'g')

plot(Gr(MIN2:MAX3),x_L_b,'g')

condition = Gr(MIN2)^2 + x_L_d(1)^2 .985;

if(X=1)

if(mod(X,.1)==0)

if(mod(X,1)==0)

word = [num2str(X) '.0'];

else

word = num2str(X);

end

if(X==1)

angle = 90;

else

angle = -atan(angle_point)*180/pi;

end

set(text(Gr(MIN2),x_L_d(1),word),'Rotation',angle,'VerticalAlignment','bottom','HorizontalAlignment','left');

set(text(Gr(MIN2),-x_L_d(1),word),'Rotation',-angle+180,'HorizontalAlignment','right','VerticalAlignment','bottom');

if(mod(X,.2)==0)

xval=X^2/(X^2+4);

yval = 1/2/X*(-2+2*(1-X^2+2*X^2*xval-X^2*xval^2)^(1/2));

angle = -atan(yval/(.5-xval))*180/pi;

set(text(xval,yval,word),'Rotation',angle,'HorizontalAlignment','left','VerticalAlignment','bottom');

set(text(xval,-yval,word),'Rotation',-angle+180,'HorizontalAlignment','right','VerticalAlignment','bottom')

end

end

elseif(X=2)

if(mod(X,.2)==0)

if(mod(X,1)==0)

word = [num2str(X) '.0'];

else

word = num2str(X);

end

if(condition)

angle = -atan(angle_point)*180/pi+180;

set(text(Gr(MIN2),x_L_a(1),word),'Rotation',angle,'VerticalAlignment','bottom','HorizontalAlignment','left');

set(text(Gr(MIN2),-x_L_a(1),word),'Rotation',-angle+180,'HorizontalAlignment','right','VerticalAlignment','bottom');

else

angle = -atan(angle_point)*180/pi+180;

set(text(Gr(MAX2),x_L_d(length(x_L_d)),word),'Rotation',angle,'VerticalAlignment','bottom','HorizontalAlignment','left');

set(text(Gr(MAX2),-x_L_d(length(x_L_d)),word),'Rotation',-angle+180,'HorizontalAlignment','right','VerticalAlignment','bottom');

end

end

elseif(X=5)

if(mod(X,1)==0)

if(condition)

angle = -atan(angle_point)*180/pi+180;

set(text(Gr(MIN2),x_L_a(1),[num2str(X) '.0']),'Rotation',angle,'VerticalAlignment','bottom','HorizontalAlignment','left');

set(text(Gr(MIN2),-x_L_a(1),[num2str(X) '.0']),'Rotation',-angle+180,'HorizontalAlignment','right','VerticalAlignment','bottom');

else

angle = -atan(angle_point)*180/pi+180;

set(text(Gr(MAX2),x_L_d(length(x_L_d)),[num2str(X) '.0']),'Rotation',angle,'VerticalAlignment','bottom','HorizontalAlignment','left');

set(text(Gr(MAX2),-x_L_d(length(x_L_d)),[num2str(X) '.0']),'Rotation',-angle+180,'HorizontalAlignment','right','VerticalAlignment','bottom');

end

end

else

if(mod(X,10)==0)

if(condition)

angle = -atan(angle_point)*180/pi+180;

set(text(Gr(MIN2),x_L_a(1),num2str(X)),'Rotation',angle,'VerticalAlignment','bottom','HorizontalAlignment','left');

set(text(Gr(MIN2),-x_L_a(1),num2str(X)),'Rotation',-angle+180,'HorizontalAlignment','right','VerticalAlignment','bottom');

else

angle = -atan(angle_point)*180/pi+180;

set(text(Gr(MAX2),x_L_d(length(x_L_d)),num2str(X)),'Rotation',angle,'VerticalAlignment','bottom','HorizontalAlignment','left');

set(text(Gr(MAX2),-x_L_d(length(x_L_d)),num2str(X)),'Rotation',-angle+180,'HorizontalAlignment','right','VerticalAlignment','bottom');

end

end

end

end

%plot imaginary axis

plot(zeros(1,length(Gr)),Gr,'r');

wavelengths = 0:.01:.5;

angle = linspace(pi,-pi,length(wavelengths));

wave_circle = 1.05*exp(j*phaseAngle);

plot(real(wave_circle),imag(wave_circle),'r');

for i=1:length(wavelengths)-1,

x=real(1.025*exp(j*angle(i)));

y=imag(1.025*exp(j*angle(i)));

if(x0)

rot_angle=atan(y/x)*180/pi-90;

else

rot_angle=atan(y/x)*180/pi+90;

end

if(wavelengths(i)==0)

word = '0.00';

elseif(mod(wavelengths(i),.1)==0)

word = [num2str(wavelengths(i)) '0'];

else

word = num2str(wavelengths(i));

end

set(text(x,y,word),'Rotation',rot_angle,'VerticalAlignment','middle','HorizontalAlignment','center');

end

%plot reflection coefficient and line of intersection only if arguments are present

if(nargin == 2)

radius = abs((Zl-Zo)/(Zl+Zo));

Load_circle=radius*exp(j*phaseAngle);

plot(real(Load_circle),imag(Load_circle),'r');

slope = (-(1-radius^2)^(1/2)*radius)/(radius^2);

value=1/(1+slope^2)^(1/2);

MAX2 = ceil((value+1)*(MAX-1)/2+1);

actual_value = Gr(MAX2);

if(actual_valuevalue)

MAX2 = MAX2 - 1;

end

%plot line of intersection

line = slope*Gr(fix(MAX/2):MAX2);

plot(Gr(fix(MAX/2):MAX2),line,'r');

end

求人脸几何特征提取VC++源代码

基于Gabor特征提取和人工智能的人脸检测系统源代码Face Detection System

这是一个使用了Gabor特征提取和人工智能的人脸检测系统源代码关键内容

使用步骤:

1. 拷贝所有文件到MATLAB工作目录下(确认已经安装了图像处理工具箱和人工智能工具箱)

2. 找到"main.m"文件

3. 命令行中运行它

4. 点击"Train Network",等待程序训练好样本

5. 点击"Test on Photos",选择一个.jpg图片,识别。

6. 等待程序检测出人脸区域

createffnn.m, drawrec.m, gabor.m, im2vec.m, imscan.m, loadimages.m, main.m, template1.png, template2.png, trainnet.m

2条大神的评论

  • avatar
    访客 2022-07-05 下午 08:56:25

    MIN2 = ceil((min_bound2+1)*(MAX-1)/2+1); actual_value = Gr(MIN2); if(actual_valuemin_bound2 ) MIN2 = MIN2 + 1; end

  • avatar
    访客 2022-07-05 下午 07:49:17

    t','bottom'); end else if(mod(R,10)==0) set(text(Gr(MIN),0,num2str(R)),'Rotation',90,'HorizontalA

发表评论