📄 shift.m
字号:
clear
M=getM;
A=[12 0;12 24;0 12;24 12];
B=[42 0;42 24;30 12;54 12];
C=[112 0;112 24;100 12;124 12];
D=[112 100;112 124;100 112;124 112];
E=[12 100;12 124;0 112; 24 112];
Object=[A;B;C;D;E];
Image=[];
for i=1:20
[firstPoint lastPoint]=getImagePoint(M,Object(i,1),Object(i,2));
Image=[Image;firstPoint];
end
X=(Image(3,1)-282+Image(4,1)-365+Image(7,1)-383+Image(8,1)-464+Image(11,1)-604+Image(12,1)-677+Image(15,1)-549+Image(16,1)-618+Image(19,1)-246+Image(20,1)-324)/10;
Y=(Image(1,2)-149+Image(2,2)-231+Image(5,2)-157+Image(6,2)-237+Image(9,2)-176+Image(10,2)-252+Image(13,2)-471+Image(14,2)-536+Image(17,2)-467+Image(18,2)-538)/10;
disp('相对于理论值的偏移量为:');
disp([X,Y]);
I=imread('shumo.bmp');
level = graythresh(I);
BW = im2bw(I,level);%转化为二值图象:0黑1白
[rowNum,columnNum]=size(BW);
Black=[];
for i=1:1024
for j=1:768
if(BW(j,i)==0)
Black=[Black;i+X,j+Y];%找出所有的像点,即所有的黑点
end
end
end
r=size(Black,1);
disp('所有特征点在像上的像素点个数为:');
disp(r);
num=0;
for i=1:r
aim=getObjectPoint(M,Black(i,1),Black(i,2));
x=aim(1);
y=aim(2);
if(((x-12)^2+(y-12)^2<=144)|((x-42)^2+(y-12)^2<=144)|((x-112)^2+(y-12)^2<=144)|((x-12)^2+(y-112)^2<=144)|((x-112)^2+(y-112)^2<=144))
num=num+1;%统计像素点落在A~E五个圆内的数量
end
end
disp('加上偏移量后像素点落在A~E五个圆内的数量为:');
disp(num);
disp('加上偏移量后的误码率为:');
disp((r-num)/r);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -