當前位置:首頁 » 操作系統 » 改進圖像匹配演算法

改進圖像匹配演算法

發布時間: 2022-05-10 17:00:12

1. 一種基於圖像灰度的快速匹配演算法 怎麼實現

1.框架搭建
1.1 將struts2中的jar文件導入到項目中
commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.15.jar,ognl-2.7.3.jar
struts2-core-2.1.8.1.jar,xwork-core-2.1.6.jar
1.2 將struts.xml文件拷貝到項目的src目錄下
1.3 修改web.xml文件
添加:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.action中方法的調用方式
2.1 自動方法調用(只能調用execute)
2.2 指定方法調用(通過設置action標簽中的method屬性)
2.3 動態方法調用(在調用時,在action後加!方法名稱,如:login!deletUser)
注意:<constant name="struts.enable.DynamicMethodInvocation" value="true" />
2.4 通配符調用
3. action接收客戶端參數的方式
3.1 直接在action中定義參數變數,並生成set和get方法
3.2 定義接收參數的類
注意:都要為action的成員變數提供get和set方法
3.3 讓action實現ModelDriven介面,並實現裡面的getModel方法
4.獲取request,session,application的方式
4.1 用ActionContext獲取,實際上獲取到的都是Map對象
4.2 用ServletActionContext獲取,獲取到的是基於Servlet API的對象
4.3 讓action實現RequestAware,SessionAware,ApplicationAware介面,並實現裡面的方法
5.四種轉向
5.1 action轉發到頁面(默認)
5.2 action重定向到頁面 <result type="redirect">
5.3 action轉發到action <result type="chain">
<param name="actionName">login</param>
<param name="nameSpace">/login</param>
<param name="method">login</param>
</result>
5.4 action重定向到action <result type="redirectAction">login</result>

2. 求教:怎樣實現圖像匹配啊,最好有MATLAB源程序,急用啊

您好!

實驗平台

X86 PC,Windows XP sp2, Matlab 7.1

資源的獲取

圖片資源來自http://vision.ece.ucsb.e/registration/satellite/testimag.html,其中每個壓縮包里存有兩副圖片,每副圖片以矩陣形式保存。

matlab工具的使用方法:查看幫助mage Processing Toolbox User's Guide——Image registration。

涉及配准方法簡介

該工具箱提供的配准方法均需手工選擇圖像間的匹配點對(control points pair),均屬於交互配准方法。其基本過程為:讀入圖像數據->在兩副圖像上選擇足夠匹配點->選擇配准演算法,計算變換參數->變換圖像。

假設input image(輸入圖像)為欲進行配準的圖像,base image為配準是的參考圖像。以下是我參考matlab幫助給出了簡介。

1.線性正投影(linear conformal):最簡單。平面映射成平面。

當輸入輸入圖像與參考圖像對比,只是存在全局的平移、旋轉、縮放或其三者組合的差別時(正方形仍對應正方形),選擇此配准方法。此方法至少需要2對匹配點。

2.仿射(affine):將平行線轉換成平行線。

當輸入圖像形狀存在切變現象(正方形對應平行四邊形),選此法。至少需3對匹配點。

3.投影(projective):將直線映射成直線。

如果輸入圖像呈現傾斜,翹起現象,選此法。至少需4對匹配點。

4.多項式(polynomial):將直線映射成曲線。

如果輸入圖像出現不規則曲變,採用此法。Matlab中提供有2、3、4次冪的實現,分別至少需要6,10,10對匹配點。

5.分段線性(piecewise linear)

如果輸入圖像的各個局部之間的退化模式明顯不一樣,選此法。至少需要4對匹配點。

6.局部加權平均(local weighted mean)

與分段線性一致,但效果較之好。至少需要6對(推薦12對)匹配點。

實驗步驟

1.讀取圖像數據。

因為源圖像以矩陣形式存在一個二進制的文件里,用fread可將其讀取到變數矩陣中。將讀取文件編製成一個子函數(RTIread.m),源代碼如下:

function imMatrix=RTIread(FILENAME,SIZE)
%RTIread Read the image matrix from binary "Registration Test Image" file.
% imMatrix=RTIread(FILENAME,SIZE) opens the file FILENAME, and reads the
% number of elements specified by SIZE.
%
% FILENAME is a string containing the name of the file to be opened.
% Valid entries for SIZE are:
% N read N elements into a column vector.
% inf read to the end of the file.
% [M,N] read elements to fill an M-by-N matrix, in column order.
% N can be inf, but M can't.
%
% It returns the image matrix.
fid=fopen(FILENAME,'r');
imMatrix=fread(fid,SIZE,'uint8=>uint8');
fclose(fid);
%image(imMatrix);

這里我們選取了兩張600×600的圖片,文件名為「casitas84」和「casitas86」。運行以下代碼讀取圖像矩陣:

% 1. Read the images into the MATLAB workspace.

base=RTIread('casitas84',[600,600]);

input=RTIread('casitas86',[600,600]);

2.選取匹配點(control points)。

根據預定的配准方法,選定足夠的匹配點對。運行下列代碼:

% 2.Specify control point pairs n the images and save.

cpselect(input,base); %please select 15 points for test.

出現GUI界面。

http://walkfarer.blog.e.cn/UploadFiles/2006-3/327845185.jpg

操作很簡單,只需注意選點要均勻布開,以增加其代表性。選定完畢,File-> Save Points to Workspace將數據保存到工作區中。Workspace立刻多出兩個N×2的數組(其中N為選定的匹配點對數),分別為input_points和base_points,如:

input_points =

119.5185 193.5926

168.9012 242.9753

105.9383 140.5062

459.0247 131.8642

313.3457 257.7901

292.3580 165.1975

276.3086 33.0988

283.7160 380.0123

76.3086 297.2963

135.5679 83.7160

360.2593 313.3457

94.8272 446.6790

70.1358 354.0864

181.2469 361.4938

381.2469 460.2593

252.8519 433.0988

3.利用十字相關法調整選定了的匹配點。

這步可選。運行代碼:

% 3.Fine-tune the control points using cross-correlation.

input_points_corr = cpcorr(input_points,base_points,input,base); %optimism the points

input_points_corr為優化後在輸入圖片的對應匹配點。

4.計算變換公式的參數。

利用cp2tform,選定變換類型(即配准方法),計算變換參數。以下只需選定一種即可。

% 4.Specify the type of transformation to be used and infer its parameters

% (1) not Fine-tune points

Tlinear = cp2tform(input_points,base_points,'linear conformal');

Taffine = cp2tform(input_points,base_points,'affine');

Tprojective = cp2tform(input_points,base_points,'projective');

Tpolynomial2 = cp2tform(input_points,base_points,'polynomial',2);

Tpolynomial3 = cp2tform(input_points,base_points,'polynomial',3);

Tpolynomial4 = cp2tform(input_points,base_points,'polynomial',4);

Tpiecewise = cp2tform(input_points,base_points,'piecewise linear');

Tlwm = cp2tform(input_points,base_points,'lwm');

% (2)Fine-tune points

fTlinear = cp2tform(input_points_corr,base_points,'linear conformal');

fTaffine = cp2tform(input_points_corr,base_points,'affine');

fTprojective = cp2tform(input_points_corr,base_points,'projective');

fTpolynomial2 = cp2tform(input_points_corr,base_points,'polynomial',2);

fTpolynomial3 = cp2tform(input_points_corr,base_points,'polynomial',3);

fTpolynomial4 = cp2tform(input_points_corr,base_points,'polynomial',4);

fTpiecewise = cp2tform(input_points_corr,base_points,'piecewise linear');

fTlwm = cp2tform(input_points_corr,base_points,'lwm');

諸如Tlinear的變數為一個稱為TFORM的數據結構,尚沒做仔細研究:

Tlinear =

ndims_in: 2

ndims_out: 2

forward_fcn: @fwd_affine

inverse_fcn: @inv_affine

tdata: [1x1 struct]

5.變換圖像。

% 5.Transform the unregistered image to bring it into alignment.

title('image registration polynomial method');

subplot(2,2,1);

imshow(base);

title('Base image');

subplot(2,2,2);

imshow(input);

title('Input image');

subplot(2,2,3);

imshow(imtransform(input,Tpolynomial2));

title('registered image');

subplot(2,2,4);

imshow(imtransform(input,fTpolynomial2));

title('registered image(fine-tune points)');

結果如下:

http://walkfarer.blog.e.cn/UploadFiles/2006-3/327783689.jpg

總結

1.image和imshow區別。前者視base,input此類二維圖片矩陣為索引圖像,在系統的index庫中選取顏色。

2.選擇適當的方法來建立轉換參數,並非演算法越復雜越好,應參考成像因素(退化因素)。

3.尚沒有看出十字相關法的好處。

4. 利用cpselect選擇匹配點,cpselect可以返回一個GUI句柄。欲實現如下功能:當打開cpselect GUI 時,m文件程序暫停運行,關閉之後繼續執行。因為對GUI編程不懂, 使用了waitfor,pause函數都沒法實現。嘗試中……

3. 雙目視覺的匹配演算法是不是有好幾種具體是哪幾種

與普通的圖像模板匹配不同的是,立體匹配是通過在兩幅或多幅存在視點差異、幾何畸變、灰度畸變、雜訊干擾的圖像對之間進行的,不存在任何標准模板進行匹配。立體匹配方法一般包含以下三個問題:(1)基元的選擇,即選擇適當的圖像特徵如點、直線、相位等作為匹配基元;(2)匹配的准則,將關於物理世界的某些固有特徵表示為匹配所必須遵循的若干規則,使匹配結果能真實反映景物的本來面目;(3)演算法結構,通過利用適當的數學方法設計能正確匹配所選擇基元的穩定演算法。

根據匹配基元的不同,立體視覺匹配演算法目前主要分為三大類,即區域匹配、相位匹配和特徵匹配:

基於區域灰度的匹配演算法是把一幅圖像(基準圖)中某一點的灰度鄰域作為模板,在另一幅圖像(待匹配圖)中搜索具有相同(或相似)灰度值分布的對應點鄰域,從而實現兩幅圖像的匹配。這類演算法的性能取決於度量演算法及搜索策略的選擇。另外,也必須考慮匹配窗口大小、形式的選擇,大窗口對於景物中存在的遮擋或圖像不光滑的情況會更多的出現誤匹配,小窗口則不具有足夠的灰度變化信息,不同的窗口形式對匹配信息也會有不同的影響。因此應該合理選取匹配區域的大小和形式來達到較好的匹配結果。

相位匹配是近二十年發展起來的一種匹配演算法,相位作為匹配基元,即認為圖像對中的對應點局部相位是一致的。最常用的相位匹配演算法有相位相關法和相位差——頻率法,雖然該方法是一種性能穩定、具有較強的抗輻射抗透視畸變能力、簡單高效、能得到稠密視差圖的特徵匹配方法。但是,當局部結構存在的假設不成立時,相位匹配演算法因帶通輸出信號的幅度太低而失去有效性,也就是通常提到的相位奇點問題,在相位奇點附近,相位信息對位置和頻率的變化極為敏感,因此用這些像素所確定的相位差異來衡量匹配誤差將導致極不可靠的結果。此外,相位匹配演算法的收斂范圍與帶通濾波器的波長有關,通常要考慮相位卷繞,在用相位差進行視差計算時,由於所採用的相位只是原信號某一帶通條件下的相位,故視差估計只能限制在某一限定范圍之內,隨視差范圍的增大,其精確性會有所下降。

基於特徵的圖像匹配方法是目前最常用的方法之一,由於它能夠將對整個圖像進行的各種分析轉化為對圖像特徵(特徵點、特徵曲線等)的分析的優點,從而大大減小了圖像處理過程的計算量,對灰度變化、圖像變形、噪音污染以及景物遮擋等都有較好的適應能力。

基於特徵的匹配方法是為使匹配過程滿足一定的抗噪能力且減少歧義性問題而提出來的。與基於區域的匹配方法不同,基於特徵的匹配方法是有選擇地匹配能表示景物自身特性的特徵,通過更多地強調空間景物的結構信息來解決匹配歧義性問題。這類方法將匹配的搜索范圍限制在一系列稀疏的特徵上。利用特徵間的距離作為度量手段,具有最小距離的特徵對就是最相近的特徵對,也就是匹配對。特徵間的距離度量有最大最小距離、歐氏距離等。

特徵點匹配演算法嚴格意義上可以分成特徵提取、特徵匹配和消除不良匹配點三步。特徵匹配不直接依賴於灰度,具有較強的抗干擾性。該類方法首先從待匹配的圖像中提取特徵,用相似性度量和一些約束條件確定幾何變換,最後將該變換作用於待匹配圖像。匹配中常用的特徵基元有角點、邊緣、輪廓、直線、顏色、紋理等。同時,特徵匹配演算法也同樣地存在著一些不足,主要表現為:

(l)特徵在圖像中的稀疏性決定了特徵匹配只能得到稀疏的視差場,要獲得密集的視差場必須通過使用插值的過程,插值過程通常較為復雜。

(2)特徵的提取和定位的准確與否直接影響特徵匹配結果的精確度。

(3)由於其應用場合的局限性,特徵匹配往往適用於具有特徵信息顯著的環境中,在缺少顯著主導特徵環境中該方法有很大困難。

總之,特徵匹配基元包含了演算法編程上的靈活性以及令人滿意的統計特性。演算法的許多約束條件均能清楚地應用於數據結構,而數據結構的規則性使得特徵匹配非常適用於硬體設計。例如,基於線段的特徵匹配演算法將場景模型描繪成相互聯結的邊緣線段,而不是區域匹配中的平面模型,因此能很好地處理一些幾何畸變問題,對對比度和明顯的光照變化等相對穩定。特徵匹配由於不直接依賴於灰度,計算量小,比基於區域的匹配演算法速度快的多。且由於邊緣特徵往往出現在視差不連續的區域,特徵匹配較易處理立體視覺匹配中的視差不連續問題。

4. 如何使用opencv實現圖像匹配

OpenCV中有一些已經實現的匹配庫。一般是先尋找特徵點,然後匹配特徵點。
尋找特徵點一般有Harris(opencv中函數:cornerHarris),FAST(opencv中函數:FastFeatureDetector)等,匹配主要有SURF,SIFT等。可查閱OpenCV使用手冊學習調用,同時Opencv也有一些例子,可參考一下。

5. 圖像匹配方法有哪些

圖像匹配的方法很多,一般分為兩大類,一類是基於灰度匹配的方法,另一類是基於特徵匹配的方法。

(1)基於灰度匹配的方法。也稱作相關匹配演算法,用空間二維滑動模板進行圖像匹配,不同演算法的區別主要體現在模板及相關准則的選擇方面。

(2)基於特徵匹配的方法。首先在原始圖像中提取特徵,然後再建立兩幅圖像之間特徵的匹配對應關系。常用的特徵匹配基元包括點、線、區域等顯著特徵。圖像特徵相比像素點數量殺過少很多,特徵間的匹配度量隨位置變化尖銳,容易找出准確的匹配位置,特徵提取能大大減少雜訊影響,對灰度變化、形變和遮擋有較強的適應力。

6. 圖像匹配的匹配關鍵要素

同一場景在不同條件下投影所得到的二維圖像會有很大的差異,這主要是由如下原因引起的:感測器雜訊、成像過程中視角改變引起的圖像變化、目標移動和變形、光照或者環境的改變帶來的圖像變化以及多種感測器的使用等。為解決上述圖像畸變帶來的匹配困難,人們提出了許多匹配演算法,而它們都是由如下四個要素組合而成:
(1)特徵空間
特徵空間是由參與匹配的圖像特徵構成的,選擇好的特徵可以提高匹配性能、降低搜索空間、減小雜訊等不確定性因素對匹配演算法的影響。匹配過程可以使用全局特徵或者局部特徵以及兩者的結合。
(2)相似性度量
相似性度量指用什麼度量來確定待匹配特徵之間的相似性,它通常定義為某種代價函數或者是距離函數的形式。經典的相似性度量包括相關函數和 Minkowski 距離,近年來人們提出了 Hausdorff 距離、互信息作為匹配度量。Hausdorff 距離對於雜訊非常敏感,分數 Hausdorff 距離能處理當目標存在遮擋和出格點的情況,但計算費時;基於互信息的方法因其對於照明的改變不敏感已在醫學等圖像的匹配中得到了廣泛應用,它也存在計算量大的問題,而且要求圖像之間有較大的重疊區域。
(3)圖像匹配變換類型
圖像幾何變換用來解決兩幅圖像之間的幾何位置差別,它包括剛體變換、仿射變換、投影變換、多項式變換等。
(4)變換參數的搜索
搜索策略是用合適的搜索方法在搜索空間中找出平移、旋轉等變換參數的最優估計,使得圖像之間經過變換後的相似性最大。搜索策略有窮盡搜索、分層搜索、模擬退火演算法、Powell方向加速法、動態規劃法、遺傳演算法和神經網路等。遺傳演算法採用非遍歷尋優搜索策略,可以保證尋優搜索的結果具有全局最優性,所需的計算量較之遍歷式搜索小得很多;神經網路具有分布式存儲和並行處理方式、自組織和自學習的功能以及很強的容錯性和魯棒性,因此這兩種方法在圖像匹配中得到了更為廣泛的使用。
在成像過程中,由於雜訊及遮擋等原因,導致一幅圖像中的特徵基元在另一幅圖像中有幾個候選特徵基元或者無對應基元,這些都是初級視覺中的「不適定問題」,通常在正則化框架下用各種約束條件來解決。常用的約束有唯一性約束、連續性約束、相容性約束和順序一致性約束。首先提取左右圖像對中的線段,用對應線段滿足的全局約束、相容性約束、鄰域約束等表示 HopfieIk 神經網路的能量函數,通過最小化能量函數得到兩幅圖像中的對應線段,提高了匹配的可靠性。同時人們還採用最小平方中值法和投票演算法等後處理來有效地消除假配點和誤配點。

7. opencv關於像素點的圖像匹配演算法

首先,建議你將圖像中感興趣區域(比如上圖中的字母)取出來進行歸一化,然後在進行匹配率計算。這是因為周圍環境會對匹配率產生影響。
其次,建議你將匹配率演算法改成Hausdorff距離https://en.wikipedia.org/wiki/Hausdorff,這樣對圖像有些平移什麼的都不怎麼敏感了。

8. 圖象匹配比值演算法

自相關比值模板匹配演算法

9. 圖像匹配的演算法

迄今為止,人們已經提出了各種各樣的圖像匹配演算法,但從總體上講,這些匹配演算法可以分成關系結構匹配方法、結合特定理論工具的匹配方法、基於灰度信息的匹配方法、基於亞像元匹配方法、基於內容特徵的匹配方法五大類型 基於內容特徵的匹配首先提取反映圖像重要信息的特徵,而後以這些特徵為模型進行匹配。局部特徵有點、邊緣、線條和小的區域,全局特徵包括多邊形和稱為結構的復雜的圖像內容描述。特徵提取的結果是一個含有特徵的表和對圖像的描述,每一個特徵由一組屬性表示,對屬性的進一步描述包括邊緣的定向和弧度,邊與線的長度和曲率,區域的大小等。除了局部特徵的屬性外,還用這些局部特徵之間的關系描述全局特徵,這些關系可以是幾何關系,例如兩個相鄰的三角形之間的邊,或兩個邊之間的距離可以是輻射度量關系,例如灰度值差別,或兩個相鄰區域之間的灰度值方差或拓撲關系,例如一個特徵受限於另一個特徵。人們一般提到的基於特徵的匹配絕大多數都是指基於點、線和邊緣的局部特徵匹配,而具有全局特徵的匹配實質上是我們上面提到的關系結構匹配方法。特徵是圖像內容最抽象的描述,與基於灰度的匹配方法比,特相對於幾何圖像和輻射影響來說更不易變化,但特徵提取方法的計算代價通常較,並且需要一些自由參數和事先按照經驗選取的閉值,因而不便於實時應用同時,在紋理較少的圖像區域提取的特徵的密度通常比較稀少,使局部特徵的提 取比較困難。另外,基於特徵的匹配方法的相似性度量也比較復雜,往往要以特徵屬性、啟發式方法及閉方法的結合來確定度量方法。基於圖像特徵的匹配方法可以克服利用圖像灰度信息進行匹配的缺點,由於圖像的特徵點比象素點要少很多,因而可以大大減少匹配過程的計算量同時,特徵點的匹配度量值對位置的變化比較敏感,可以大大提高匹配的精確程度而且,特徵點的提取過程可以減少雜訊的影響,對灰度變化,圖像形變以及遮擋等都有較好的適應能力。所以基於圖像特徵的匹配在實際中的應用越來越廣-泛。所使用的特徵基元有點特徵明顯點、角點、邊緣點等、邊緣線段等。

熱點內容
死歌腳本 發布:2024-10-09 03:11:55 瀏覽:85
企業內網搭建電影伺服器侵權嗎 發布:2024-10-09 03:07:14 瀏覽:105
python讀取jpg 發布:2024-10-09 02:50:22 瀏覽:154
王者榮耀的伺服器ip在哪 發布:2024-10-09 02:44:48 瀏覽:77
安卓怎麼下載李寧 發布:2024-10-09 02:31:37 瀏覽:343
配置不高pr哪個版本最好用 發布:2024-10-09 01:57:15 瀏覽:789
編譯OpenWrtipv6 發布:2024-10-09 01:51:40 瀏覽:124
python寫入位元組 發布:2024-10-09 01:24:22 瀏覽:648
如何設置超高難度密碼 發布:2024-10-09 01:19:05 瀏覽:179
linux只讀文件修改 發布:2024-10-09 01:13:08 瀏覽:87