91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-06
  • 語言: Matlab
  • 標簽: Matlab??

資源簡介

自己用Matlab寫的Moravec算子實現程序,代碼解釋的很詳細,給大家參考參考

資源截圖

代碼片段和文件信息

%?計算四個方向的灰度值差的平方
%?分別是水平向右、垂直鄉下、左下角、右下角
clear?all;
close?all;
clc;

tic?%開始時鐘測量運算時間

Original=imread(‘hhhh.jpg‘);
[mnd]=size(Original);

if?d==3
????I=rgb2gray(Original);
elseif?d==1
????I=Orginal;
end
????????
%以window*window為像元對圖像I進行滑移計算
window=3;
w=floor(window/2);

%得到各中心點的坐標值,保證滑移窗口在圖像內
%因為有左下角移動,所以y的坐標必須比x大1,即x最小從2開始,y最小從3開始
x_start=w+1;?
y_start=w+2;?
x_end=m-w-1;?
y_end=n-w-1;?

%角點映射圖(cornerness?map)
cornermap=zeros(mn);

%計算像素坐標四個方向(右、下、右下、左下)的興趣值
for?x=x_start:x_end
????for?y=y_start:y_end
????????%計算橫向相鄰像素灰度差的平方和
????????v1=0;v2=0;v3=0;v4=0;
????????for?i=-w:w-1
????????????%計算橫向向右滑移像素灰度差的平方和
????????????v1=v1+(double(I(xy+i))-double(I(xy+i+1)))^2;???????????
????????????%計算縱向向下滑移像素灰度差的平方和
????????????v2=v2+(double(I(x+iy))-double(I(x+i+1y)))^2;???????
????????????%計算向左下角滑移像素灰度差的平方和
????????????v3=v3+(double(I(x+iy-i))-double(I(x+i+1y-i-1)))^2;???????????
????????????%計算向右下角滑移像素灰度差的平方和
????????????v4=v4+(double(I(x+iy+i))-double(I(x+i+1y+i+1)))^2;
????????end
????????%取v1v2v3v4最小者作為像素(xy)的興趣值
????????%同時邊緣像素點設值為0
????????cornermap(xy)=min([v1v2v3v4]);
????end
end

%給定一個經驗閾值。閾值的選取應以候選點包含所需要的特征點,而又不包含過多的非特征點為原則.
threshold=1000;
cornermap(cornermap
%%?非極大值抑制
%設置局部極大值遍歷窗口
win_supr=5;
w1=floor(win_supr/2);
%計算每行列未遍歷的像元個數
a=mod(mwin_supr);
b=mod(nwin_supr);
%候選特征點在每個分割單元中是否最大
x1=[];y1=[];
%分割成多個局部區域,對每個區域進行極大值獲取
%這里不是判斷每個遍歷窗口中心是否是極大值,而是將每個遍歷窗口中最大值點作為特征點輸入
%這樣做的意思也即是默認每個子區域的極大值必然是特征點
for?i=(w1+1):win_supr:(m-a-w1)?
????for?j=(w1+1):win_supr:(n-b-w1)
????????subcorner=cornermap((i-w1):(i+w1)(j-w1):(j+w1));
????????vMax=max(subcorner(:));
????????[x_y_]=find(subcorner==vMax);%兩個NaN是不能比較大小的,所以會跳過去
????????%計算特征點在原始圖像中的行列號
????????x1=[x1;i-w1-1+x_];
????????y1=[y1;j-w1-1+y_];
????end
end

toc;
t=toc;
disp([‘本程序的運行時間為‘num2str(t)‘秒。‘])

%%?輸出圖像
figure(1)
subplot(121);
imshow(Original)
title(‘原圖像‘)
xlabel(‘橫向‘)
ylabel(‘縱向‘)
axis?on

%圖像中顯示特征點
subplot(122);
imshow(Original)
hold?on
plot(y1x1‘R*‘)
axis?on
title(‘圖像中顯示特征點‘)
xlabel(‘圖像的列數‘)
ylabel(‘圖像的行數‘)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????8250??2014-07-05?19:41??Matlab實現Moravec算子\hhhh.jpg

?????文件???????2637??2015-03-20?15:41??Matlab實現Moravec算子\Moravec.m

?????目錄??????????0??2015-03-20?15:40??Matlab實現Moravec算子

-----------?---------??----------?-----??----

????????????????10887????????????????????3


評論

共有 條評論