日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Moravec算子

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Moravec算子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個算子算是圖像歷史上第一個特征點提取算法了,1977年提出的,很簡單,拿來練手很合適。

算法原理如下:

1.選取一個合理的鄰域遍歷圖像,這里是5*5鄰域的。在鄰域中依次計算,垂直,水平,對角與反對角四個相鄰像素灰度的差的平方和,作為該鄰域特征值。

大致就是下面這個樣子:

公式:

這里k是窗口的半徑。

2.從四個特征值中選最小的值作為該像素初次候選特征值。

公式:

?

3.設定一個閾值,將大于該閾值初次候選特征值的選為二次候選特征值。

4.設定一個鄰域,將該鄰域最大的二次候選特征值作為最終要選擇的特征值。

原圖:

處理后:


matlab代碼如下:

clear all;close all;clcimg=double(imread('lena.jpg')); [h w]=size(img); imshow(img,[])imgn=zeros(h,w); n=4; for y=1+n:h-nfor x=1+n:w-nsq=img(y-n:y+n,x-n:x+n);V=zeros(1,4);for i=2:2*n+1 %垂直,水平,對角,反對角四個方向領域灰度差的平方和V(1)=V(1)+(sq(i,n+1)-sq(i-1,n+1))^2;V(2)=V(2)+(sq(n+1,i)-sq(n+1,i-1))^2;V(3)=V(3)+(sq(i,i)-sq(i-1,i-1))^2;V(4)=V(4)+(sq(i,(2*n+1)-(i-1))-sq(i-1,(2*n+1)-(i-2)))^2;endpix=min(V); %四個方向中選最小值imgn(y,x)=pix; end endT=mean(imgn(:)); %設閾值,小于均值置零 ind=find(imgn<T); imgn(ind)=0;for y=1+n:h-n %選局部最大且非零值作為特征點for x=1+n:w-nsq=imgn(y-n:y+n,x-n:x+n);if max(sq(:))==imgn(y,x) && imgn(y,x)~=0img(y,x)=255;endend endfigure; imshow(img,[]);


總結

以上是生活随笔為你收集整理的Moravec算子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。