Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】
目錄
- 前言
- 一.數(shù)字圖像相關(guān)(Digital Image Correlation)
- 二.相關(guān)運算
- 1.數(shù)學(xué)模型
- 2.形函數(shù)
- 3.相關(guān)標準
- 其他知識
- 三.ADIC2D代碼解釋
- 1.ImgCorr
- 2.SubCorr
- 四.寫在最后
- 參考引用
前言
由于本人近期正在展開數(shù)字圖像相關(guān)技術(shù)用于測量材料形變方向的研究,其中需要對別人現(xiàn)有算法的復(fù)現(xiàn)和調(diào)研,盡管其中很多算法都已經(jīng)非常成熟,但對于初學(xué)者而言即使明白其中的原理,無法上手實踐和操作的話,依然無法能夠?qū)⑵渫耆膽?yīng)用起來或者在上面進行創(chuàng)新,我希望能將自己作為一個初學(xué)者復(fù)現(xiàn)他人代碼和學(xué)習(xí)該原理的過程記錄下來,方便每一個涉足該領(lǐng)域的人能更快應(yīng)用這些知識。
本文所復(fù)現(xiàn)的論文——Atkinson D, Becker T. A 117 Line 2D Digital Image Correlation Code Written in MATLAB[J]. Remote Sensing, 2020, 12(18): 2906.1
GitHub源碼地址:https://github.com/SUMatEng/ADIC2D.git
由于官方數(shù)據(jù)集可能存在變動或者被墻,這里提供一下我已經(jīng)上傳好的版本
數(shù)據(jù)集地址:
-
百度云:鏈接:https://pan.baidu.com/s/1In4ZAFRIzfWIxoBSMAYGYQ
提取碼:8xmi -
谷歌云盤:https://drive.google.com/file/d/1JUTGmZirxXHYg4fPno-wE3YUmyTqWKzI/view?usp=sharing
數(shù)字圖像相關(guān)專欄目錄:
這篇論文是讓我真正想要將自己正在做的這些事進行記錄的源動力,因為這篇文章的作者也是考慮到盡管數(shù)字圖像相關(guān)技術(shù)很成熟,但是網(wǎng)絡(luò)上缺乏可以實操的源碼便于理解,從而將簡化的代碼以及對于原理的解釋共享在網(wǎng)絡(luò)上便于他人學(xué)習(xí)。非常感謝Devan Atkinson,Thorsten Becker兩位作者對于他們知識成果的共享。我將在這里將我學(xué)到的東西以中文的形式以方便國內(nèi)的學(xué)者進行進一步的研究。
This paper aims to bridge the gap between the theory and implementation of DIC. It does this by firstly presenting the theory for a 2D, subset based DiC framework that is predominantly consistent with current state-of-the-art practices. 1
一.數(shù)字圖像相關(guān)(Digital Image Correlation)
數(shù)字圖像相關(guān)技術(shù)(Digital Image Correlation, DIC) 是廣泛應(yīng)用于剛體結(jié)構(gòu)形變檢測的視覺測量技術(shù)。它通過在被測物表面投影或繪制隨機散斑圖案,定義圖像的相似度函數(shù),對物體形變前后的兩幅圖像進行分析即可得到采樣點的位移場,從而得到形變2。數(shù)字圖像相關(guān)技術(shù)按照其測量的維數(shù),可以被分為二維數(shù)字圖像相關(guān)(Two-Dimensional Digital Image Correlation, 2D-DIC)和三維數(shù)字圖像相關(guān)(Three-Dimensional Digital Image Correlation, 3D-DIC)3。如圖所示4就是2D-DIC獲取形變后子區(qū)位移場的過程。
對于數(shù)字圖像相關(guān)而言,其流程可以分為標定、相關(guān)運算、位移變換以及最后根據(jù)實際需要計算應(yīng)變或者其他信息四個步驟,標定就是通過一系列拍攝的特定圖案的圖片,利用標定算法求解出相機圖像坐標系與真實世界坐標系下的映射關(guān)系,之后我單獨寫一篇來分享好了,這里主要分享一下相關(guān)運算的流程與推導(dǎo)。
二.相關(guān)運算
數(shù)字圖像相關(guān)的本質(zhì)就是在參考圖像上設(shè)置好子區(qū)后,找到形變后圖片上對應(yīng)的已經(jīng)產(chǎn)生過位移的子區(qū),從而計算出形變子區(qū)相對于參考子區(qū)在圖像坐標系上的位移,最終利用標定好的映射關(guān)系求解出該區(qū)域在實際物理空間中的位移,最后利用得到的位移計算得到所拍攝表面所發(fā)生的形變。在這個過程中參考子區(qū)是已知的,但形變后的圖片上原本的子區(qū)必然發(fā)生了變化,其具體位置是未知的,因此如何才能找到和原先參考子區(qū)對應(yīng)的那塊區(qū)域(求解這一未知量)正是關(guān)鍵所在,這正是相關(guān)運算所做的事情。
1.數(shù)學(xué)模型
我強烈建議大家能一起推導(dǎo)一次這一部分,對于理解相關(guān)運算有很大的作用!!
首先設(shè)參考圖像為FFF,它很多時候代表了t=0t=0t=0時刻所拍攝到的散斑圖案,其上的參考子區(qū)設(shè)為fff。
子區(qū)的排布有很多種,可以加步進那樣整列排布,也可以隨機的點選;子區(qū)的形狀也可以各種各樣,矩形、圓型,只要保證相關(guān)運算所處理的所有子區(qū)為同一種形狀、大小的即可。
接下來設(shè)形變圖像為GGG,其上的形變子區(qū)為ggg,如下為一個在相機圖像坐標系下的示意圖1
圖中左上角的矩形框即為參考子區(qū),右下角的平行四邊形即為形變子區(qū),其中參考子區(qū)fff中心點為x0=[x0y0]T\boldsymbol{x}^{0}=\left[\begin{array}{ll}x_{0} & y_{0}\end{array}\right]^{T}x0=[x0??y0??]T(后面的公式表達請注意上下標),參考子區(qū)上的其他像素點為xi=[xiyi]T\boldsymbol{x}^{i}=\left[\begin{array}{ll}x_{i} & y_{i}\end{array}\right]^{T}xi=[xi??yi??]T。以中心點x0\boldsymbol{x}^{0}x0作為參考,我們可以得到
xi=Δxix0+xo=[xiyi]=[ΔxiΔyi]+[x0y0]\boldsymbol{x}^{i}=\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}+\boldsymbol{x}^{o}=\left[\begin{array}{l} x_{i} \\ y_{i} \end{array}\right]=\left[\begin{array}{l} \Delta x_{i} \\ \Delta y_{i} \end{array}\right]+\left[\begin{array}{l} x^{0} \\ y^{0} \end{array}\right]xi=Δxix0+xo=[xi?yi??]=[Δxi?Δyi??]+[x0y0?]其中Δxix0\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}Δxix0表示x0\boldsymbol{x}^{0}x0到xi\boldsymbol{x}^{i}xi的坐標偏移。現(xiàn)在我們設(shè)置形變子區(qū)中與之前xi\boldsymbol{x}^{i}xi相對應(yīng)的當前坐標點為xi′=[xi′yi′]T\boldsymbol{x}^{i'} =\left[\begin{array}{ll}x_{i}' & y_{i}'\end{array}\right]^{T}xi′=[xi′??yi′??]T,與之前中心點x0\boldsymbol{x}^{0}x0相對應(yīng)的形變子區(qū)中心點為xd\boldsymbol{x}^ozvdkddzhkzdxd。與上式同理,我們同樣可以得到xi′\boldsymbol{x}^{i'}xi′的表達式為
xi′=Δxi′x0+xo=[xi′yi′]=[Δxi′Δyi′]+[x0y0]\boldsymbol{x}^{i'}=\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}+\boldsymbol{x}^{o}=\left[\begin{array}{l} x_{i}' \\ y_{i}' \end{array}\right]=\left[\begin{array}{l} \Delta x_{i}' \\ \Delta y_{i}' \end{array}\right]+\left[\begin{array}{l} x^{0} \\ y^{0} \end{array}\right]xi′=Δxi′x0+xo=[xi′?yi′??]=[Δxi′?Δyi′??]+[x0y0?]其中Δxi′x0\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}Δxi′x0表示x0\boldsymbol{x}^{0}x0到xi′\boldsymbol{x}^{i'}xi′的坐標偏移。注意,沒有使用形變子區(qū)中心點作為參考點,是有兩個原因的,第一個原因是由于本身xd\boldsymbol{x}^ozvdkddzhkzdxd對于我們來說依然是未知點,它只不過是一個xi′\boldsymbol{x}^{i'}xi′特例罷了,這里需要用一個已知點作為參考,還有一個原因會在形函數(shù)推導(dǎo)那一部分提到,這里先不引入。
在這個式子當中,最重要的就是計算這里的Δxi′x0\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}Δxi′x0,因為在獲得這個值后就找到形變后與之前子區(qū)一一對應(yīng)的像素點坐標,從而可以計算整個子區(qū)圖像的位移場,最后即可計算該區(qū)域的形變或者受力了。而這個未知量的求解,需要引入一個有限元分析中的概念——形函數(shù)(Shape Function)。對于一個區(qū)域或者一個單元,其形變是可以通過數(shù)學(xué)模型來進行表示的,而這個用于描述的數(shù)學(xué)模型就是形函數(shù)(圖像處理中常見的仿射變換實質(zhì)就是一個形函數(shù))。形函數(shù)的階數(shù)越高,則可以描述的形變就越復(fù)雜。因此對于Δxi′x0\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}Δxi′x0是可以用形函數(shù)來表達的,這里設(shè)形函數(shù)關(guān)系為WWW,形函數(shù)參數(shù)(Shape Function Parameters, SFPs)為PPP,我們有
Δxi′x0=W(Δxix0,P)\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}=W(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0},P)Δxi′x0=W(Δxix0,P)
那么現(xiàn)在關(guān)系式就全部建立完成了,接下來,如何建立這個形函數(shù)以及如何知道最合適的形函數(shù)參數(shù)成為了下一步的目標,首先是形函數(shù)的建立,這需要根據(jù)實際情況選擇合適階數(shù)的形函數(shù)關(guān)系,留到下一章進行探討。那么如何知道最合適的形函數(shù)參數(shù)呢?這就需要用到數(shù)字圖像相關(guān)最核心的內(nèi)容——相關(guān)運算。在信號與系統(tǒng)中,評判兩個信號的相似程度就是對他們進行相關(guān)運算,二維圖像實質(zhì)也是一種信號,因此評判參考子區(qū)和形變子區(qū)是否相似也是可以用相關(guān)運算的。
這樣的話我們就可以將兩者相關(guān)運算作為一個目標函數(shù)(其結(jié)果為相關(guān)標準,用于衡量兩者的相似性, Correlation Criterion),通過建立好的形函數(shù)關(guān)系式以及一組形函數(shù)參數(shù)初值P0P_{0}P0?,通過對相關(guān)標準的梯度下降法迭代求解,即可以找到一組最合適的形函數(shù)參數(shù)最優(yōu)解P?P^{*}P?,此時所得到的形變子區(qū)就是與真實的形變情況最為接近的,從而實現(xiàn)了參考子區(qū)與形變子區(qū)之間的匹配!
二維數(shù)字圖像本身是對于光強的一種采樣,即本身是離散點,考慮到匹配的精度,需要對形變圖像進行插值,以實現(xiàn)亞像素級別的匹配。經(jīng)過插值運算后,參考子區(qū)和形變子區(qū)都可以寫成函數(shù)的形式,即
fi=F(xo+Δxix0)f_{i}=F\left(\boldsymbol x^{o}+\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}\right) fi?=F(xo+Δxix0)gi=G(xo+W(Δxix0,P))g_{i}=G\left(\boldsymbol x^{o}+\boldsymbol{W}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}\right)\right)gi?=G(xo+W(Δxix0,P))將上面的推導(dǎo)進行歸納,整個運算的實質(zhì)就是通過給定一組形函數(shù)參數(shù)初值P0P_{0}P0?,對目標函數(shù)(相關(guān)標準)不斷迭代優(yōu)化從而得到一組最優(yōu)解P?P^{*}P?。
2.形函數(shù)
在二維數(shù)字圖像相關(guān)中,最常采用的形函數(shù)有0階形函數(shù)(WSF0W^{SF0}WSF0)、1階形函數(shù)(WSF1W^{SF1}WSF1)和2階形函數(shù)(WSF2W^{SF2}WSF2)。階數(shù)越高,能描述的形變就越復(fù)雜,但待求解的的位置量也會越多。如圖所示的就是這三種形函數(shù)的示意圖1
0階形函數(shù):只能描述位移變化,無法描述拉伸或者扭曲(速度較快,適合用于小形變系統(tǒng)的實時檢測)
WSF0(Δxix0,PSF0)=[10u01v][ΔxiΔyi1]\boldsymbol{W}^{S F 0}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}^{S F 0}\right)=\left[\begin{array}{ccc} 1 & 0 & u \\ 0 & 1 & v \end{array}\right]\left[\begin{array}{c} \Delta x_{i} \\ \Delta y_{i} \\ 1 \end{array}\right]WSF0(Δxix0,PSF0)=[10?01?uv?]???Δxi?Δyi?1????
1階形函數(shù):能描述子區(qū)位移和拉伸(仿射變換),但不能描述扭曲(適合用于小形變系統(tǒng))
WSF1(Δxix0,PSF1)=[1+uxuyuvx1+vyv][ΔxiΔyi1]\boldsymbol{W}^{S F 1}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}^{S F 1}\right)=\left[\begin{array}{ccc} 1+u_{x} & u_{y} & u \\ v_{x} & 1+v_{y} & v \end{array}\right]\left[\begin{array}{c} \Delta x_{i} \\ \Delta y_{i} \\ 1 \end{array}\right] WSF1(Δxix0,PSF1)=[1+ux?vx??uy?1+vy??uv?]???Δxi?Δyi?1????
2階形函數(shù):能描述子區(qū)位移、拉伸和扭曲(適合用于大形變系統(tǒng))
WSF2(Δxix0,PSF2)=[12uxxuxy12uyy1+uxuyu12vxxvxy12vyyvx1+vyv][Δxi2ΔxiΔyiΔyi2ΔxiΔyi1]\boldsymbol{W}^{S F 2}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}^{S F 2}\right)=\left[\begin{array}{cccccc} \frac{1}{2} u_{x x} & u_{x y} & \frac{1}{2} u_{y y} & 1+u_{x} & u_{y} & u \\ \frac{1}{2} v_{x x} & v_{x y} & \frac{1}{2} v_{y y} & v_{x} & 1+v_{y} & v \end{array}\right]\left[\begin{array}{c} \Delta x_{i}^{2} \\ \Delta x_{i} \Delta y_{i} \\ \Delta y_{i}^{2} \\ \Delta x_{i} \\ \Delta y_{i} \\ 1 \end{array}\right] WSF2(Δxix0,PSF2)=[21?uxx?21?vxx??uxy?vxy??21?uyy?21?vyy??1+ux?vx??uy?1+vy??uv?]?????????Δxi2?Δxi?Δyi?Δyi2?Δxi?Δyi?1??????????由上述式子我們可以得到不同階數(shù)形函數(shù)需要求解的參數(shù)為:
PSF0=[uv]T\boldsymbol{P}^{S F 0}=\left[\begin{array}{llllllllllll} u & v\end{array}\right]^{T}PSF0=[u?v?]TPSF1=[uuxuyvvxvy]T\boldsymbol{P}^{S F 1}=\left[\begin{array}{llllllllllll} u & u_{x} & u_{y} & v & v_{x} & v_{y} \end{array}\right]^{T}PSF1=[u?ux??uy??v?vx??vy??]TPSF2=[uuxuyuxxuxyuyyvvxvyvxxvxyvyy]T\boldsymbol{P}^{S F 2}=\left[\begin{array}{llllllllllll} u & u_{x} & u_{y} & u_{x x} & u_{x y} & u_{y y} & v & v_{x} & v_{y} & v_{x x} & v_{x y} & v_{y y} \end{array}\right]^{T} PSF2=[u?ux??uy??uxx??uxy??uyy??v?vx??vy??vxx??vxy??vyy??]T那這里的每一項參數(shù)代表什么呢?從上一節(jié)的內(nèi)容,我們可以知道,對于參考子區(qū)中任意一個像素點,其對應(yīng)的形變子區(qū)上的映射點坐標都可以寫成參考子區(qū)對應(yīng)點的坐標值+X/YX/YX/Y方向的偏移量的形式。同時,由于兩個點本身相關(guān),因此這個偏移量和參考子區(qū)對應(yīng)點坐標是有關(guān)系的。因此,我們可以得到以下關(guān)系式,設(shè)參考子區(qū)上的某一點f(x,y)f(x,y)f(x,y),設(shè)其在形變子區(qū)上的映射點為g(x~,y~)g(\widetilde{x},\widetilde{y})g(x,y?),我們有:
x~=x+u(x,y)\widetilde{x}=x+u(x,y)x=x+u(x,y)y~=y+v(x,y)\widetilde{y}=y+v(x,y)y?=y+v(x,y)對兩式進行二階泰勒展開5,我們可以獲得
x~=x0+u+uxΔx+uyΔy+12uxxΔx2+12uyyΔy2+uxyΔxΔy\tilde{x}= x_{0}+u+u_{x} \Delta x+u_{y} \Delta y+\frac{1}{2} u_{x x} \Delta x^{2} +\frac{1}{2} u_{y y} \Delta y^{2}+u_{x y} \Delta x \Delta yx~=x0?+u+ux?Δx+uy?Δy+21?uxx?Δx2+21?uyy?Δy2+uxy?ΔxΔyy~=y0+v+UxΔx+vyΔy+12vxxΔx2+12vyyΔy2+vxyΔxΔy\tilde{y}= y_{0}+v+U_{x} \Delta x+v_{y} \Delta y+\frac{1}{2} v_{x x} \Delta x^{2} +\frac{1}{2} v_{y y} \Delta y^{2}+v_{x y} \Delta x \Delta yy~?=y0?+v+Ux?Δx+vy?Δy+21?vxx?Δx2+21?vyy?Δy2+vxy?ΔxΔy而形函數(shù)的參數(shù)就是展開式中各項的系數(shù),值得注意的是,展開式中的常數(shù)項(x0,y0)(x_{0},y_{0})(x0?,y0?),考慮到每一個子區(qū)只會計算一個形函數(shù),因此單一子區(qū)內(nèi)各點的計算均要使用相同的常數(shù)項,這也正是上一節(jié)中每個點均以參考子區(qū)中心點坐標作為參考的原因了。
在實際進行相關(guān)運算的過程中,需要根據(jù)實際情況選擇合適的形函數(shù),形函數(shù)選擇的越好則計算得到的形變子區(qū)越接近真實情況,計算的值也會更加準確!
3.相關(guān)標準
相關(guān)標準在相關(guān)運算中相當于最后的評價函數(shù),選擇合適的相關(guān)標準對于迭代優(yōu)化的速度有很大作用。一個評價函數(shù)的好壞我個人認為是要滿足快收斂、足夠“凸”、“抗噪聲”,快收斂使得整體優(yōu)化能盡快逼近最優(yōu)解。足夠“凸”使得每次迭代優(yōu)化步進都會很大,同時最優(yōu)解點確實夠好。而抗噪聲則確保了所逼近的最優(yōu)解點和實際情況相符,而不是由于噪聲導(dǎo)致的異常值,減小誤差。這一塊我自己還不太能吃透,就直接搬結(jié)果吧。
在Bing Pan等人的文章Equivalence of digital image correlation criteria for pattern matching6中介紹了各種相關(guān)標準的算術(shù)推導(dǎo)以及相互之間的轉(zhuǎn)換,其中最好的三種相關(guān)標準為零均值歸一化互相關(guān)標準(Zero-Normalized Cross-Correlation Criterion, ZNCC)、零均值歸一化最小距離平方標準(Zero-Normalized Sum of Squared Differences Criterion, ZNSSD)和最優(yōu)化參數(shù)的距離平方標準(Parametric Sum of Squared Difference, PSSDab)。7
這三種標準相互之間可以互相轉(zhuǎn)換,在對最終結(jié)果的推導(dǎo)上是一致的。Bing Pan等人還在文章中測試分別使用PSSD與ZNSSD作為相關(guān)標準時候的計算效率,PSSD會更好一些。當然選用哪種標準還是要看實際情況來選擇。
其他知識
考慮篇幅 (我太懶了而且沒搞太懂) ,相關(guān)運算的其他知識點我就在這里提一嘴,之后有空再單獨寫帖子補充吧。
三.ADIC2D代碼解釋
在github上下載好源碼,根據(jù)readme下載好需要的數(shù)據(jù)集,我們即可完成對于ADIC2D項目的部署,注:我是在Matlab 2018a上進行的調(diào)試。如圖,是部署好后的各文件含義
整個項目的調(diào)用關(guān)系及框架如圖所示
部署完成之后直接運行runme.m文件即可,數(shù)據(jù)集的選擇、ADIC2D算法輸入?yún)?shù)均可在文件開頭進行修改。具體可修改參數(shù)如下:
% runme.m參數(shù)輸入部分解釋 Sample=3; % EN:which sample to analyse CH:選擇使用的數(shù)據(jù)集序號1——3 FileNames=ImageNamesLoad(Sample); % load appropriate images for chosen sample Mask=ones(size(im2double(imread(FileNames{1})))); % EN:define a mask that includes all pixels of the image CH:設(shè)定一個蒙版決定使用圖片中的那些區(qū)域,即ROI% Function inputs (which set up the DIC analysis) GaussFilter=[0.4,5];% 高斯濾波參數(shù)[sigma, kernal size],用于濾除高頻噪聲 StepSize=5; % 子區(qū)步進 SubSize=41; % 子區(qū)大小 SubShape='Circle'; % 子區(qū)形狀 SFOrder=1; % 形函數(shù)階數(shù)(0,1,2) RefStrat=0; % 子區(qū)開始編號 StopCritVal=1e-4; % 停止迭代的標準 WorldCTs=0; % 世界坐標系下的標定點位置 ImageCTs=0; % 圖像坐標系下的標定點位置 rho=0; % 標定板厚度(mm)之后runme.m會調(diào)用ADIC2D算法函數(shù)將讀入的數(shù)據(jù)集進行處理,之后會輸出處理好的數(shù)據(jù)集結(jié)構(gòu)體。runme.m的后半部分是利用輸出的數(shù)據(jù)結(jié)果進行顯示和計算誤差,包括某副圖像子區(qū)沿X/YX/YX/Y方向的位移情況、位移結(jié)果的均方根誤差等。這部分代碼都比較易讀,直接說一下ADIC2D及其子函數(shù)的算法邏輯吧
1.ImgCorr
ImgCorr函數(shù)就是按照上一個大章節(jié)中的思路來書寫的,下面是它的算法概要
2.SubCorr
SubCorr函數(shù)是利用IC-GN的方法來優(yōu)化形函數(shù)參數(shù),直到得到最優(yōu)解,從而輸出最佳匹配的形變子區(qū)信息,具體代碼邏輯請參照論文1及其源碼,這里僅展示其算法框架圖
四.寫在最后
這是我在自己做課題過程中讀到的一篇寫的很通透的論文,數(shù)字圖像相關(guān)其實是很成熟的技術(shù)了,但是就目前看來在國內(nèi),這一塊的研究還很少,即使是有相關(guān)的應(yīng)用也大都是照搬理論,并沒有對于這種技術(shù)詳細的描述和深入的解釋。本人也是個小白,希望能通過這篇帖子將這種技術(shù)說的稍微清楚些,其中如果有任何理解上的偏差和錯誤還望業(yè)界的大佬能多多指正,確保輸出的知識足夠準確和客觀。之后我把自己的課題理清楚后,應(yīng)該會寫一個小的demo作為分享,方便相關(guān)學(xué)者們能更快的理解和使用這種技術(shù)。最后非常感謝Atkinson D, Becker T對于這份知識的分享。
推薦個應(yīng)用該技術(shù)的網(wǎng)站,方便大家進一步深入
http://www.ncorr.com/index.php/dic-algorithms
參考引用
Atkinson D, Becker T. A 117 Line 2D Digital Image Correlation Code Written in MATLAB[J]. Remote Sensing, 2020, 12(18): 2906. ?? ?? ?? ?? ??
Chu T C, Ranson W F, Sutton M A. Applications of digital-image-correlation techniques to experimental mechanics[J]. Experimental mechanics, 1985, 25(3): 232-244. ??
周軼昊. 基于雙目視覺的物體表面三維復(fù)雜運動重建及其應(yīng)用[D].復(fù)旦大學(xué),2012. ??
Khoo S W, Karuppanan S, Tan C S. A review of surface deformation and strain measurement using two-dimensional digital image correlation[J]. Metrology and Measurement Systems, 2016, 23(3). ??
Lu H, Cary P D. Deformation measurements by digital image correlation: implementation of a second-order displacement gradient[J]. Experimental mechanics, 2000, 40(4): 393-400. ??
Pan B, Xie H, Wang Z. Equivalence of digital image correlation criteria for pattern matching[J]. Applied optics, 2010, 49(28): 5501-5509. ??
Sutton M A, Orteu J J, Schreier H. Image correlation for shape, motion and deformation measurements: basic concepts, theory and applications[M]. Springer Science & Business Media, 2009. ??
總結(jié)
以上是生活随笔為你收集整理的Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常见封装及参数
- 下一篇: html图像设计代码,html——图像设