圖像修復(fù) "Region filling and object removal by exemplar-based image inpainting" matlab實(shí)現(xiàn)

介紹

本代碼是對(duì)Region filling and object removal by exemplar-based image inpaintingMATLAB實(shí)現(xiàn),用來(lái)對(duì)圖像進(jìn)行區(qū)域填充凭峡、物體移除拙已。

??????代碼托管在github上:exemplar-based-image-inpainting

算法

如圖1所示,為算法偽代碼摧冀。


圖1 算法偽代碼
區(qū)域劃分

實(shí)現(xiàn)這個(gè)算法倍踪,首先需要進(jìn)行圖像區(qū)域的劃分。如圖2所示按价,\Omega為目標(biāo)區(qū)域惭适,是需要進(jìn)行填充的區(qū)域,\phi為源區(qū)域楼镐,作為填充數(shù)據(jù)的來(lái)源。\Omega的邊界為\delta\Omega往枷。如果從像素值來(lái)看的話框产,可以將目標(biāo)區(qū)域的像素值設(shè)置為0,但是0在圖像中為黑色的意思错洁,所以最好可以有一個(gè)輔助數(shù)組來(lái)標(biāo)志缺失區(qū)域秉宿。

圖2 區(qū)域劃分與邊界

計(jì)算邊界區(qū)域

使用下面的代碼可以方便地計(jì)算出邊界點(diǎn)的位置。map是一個(gè)二值數(shù)組屯碴,只有0描睦、1,其中1表示缺失像素值所在位置导而。計(jì)算出來(lái)的結(jié)果result中忱叭,1所在的位置就是邊界點(diǎn)所在的位置。

result = imdilate(map, se) - map;
優(yōu)先級(jí)的計(jì)算公式

邊界上有很多像素點(diǎn)今艺,以這些點(diǎn)為中心可以得到很多patch(比如9×9的patch)韵丑,對(duì)于這些patch,都需要計(jì)算一下他們的優(yōu)先級(jí)是多少虚缎,以便從中選出一個(gè)優(yōu)先級(jí)最大的塊作為首要修復(fù)的對(duì)象撵彻。

  • 對(duì)于一個(gè)patch,塊的優(yōu)先級(jí)計(jì)算公式:
    P(p)=C(p) \ast D(p) \tag{1}
    其中,p代表這個(gè)待修復(fù)塊的中心點(diǎn)陌僵,C(p)表示塊的置信度轴合,D(p)為data term。

  • 置信度的計(jì)算公式是:
    C(p)=\frac{\sum_{q\in\psi_p\cap(I-\Omega)} c(q)}{\psi_p} \tag{2}
    其中碗短,C(p)表示置信度受葛,其中I為整張圖像,\OmegaI的缺失區(qū)域豪椿,\psi_p為待填充的塊奔坟,|\psi_p|為塊的面積。c(q)為塊中的像素點(diǎn)的置信度搭盾,在初始化的時(shí)候咳秉,已存在的像素點(diǎn)的置信度為1,缺失的像素點(diǎn)的置信度為0鸯隅,在修復(fù)過(guò)程中澜建,修復(fù)出來(lái)的像素點(diǎn)的置信度被更新為塊的置信度C(p),由此可知蝌以,隨著修復(fù)過(guò)程的推進(jìn)炕舵,修復(fù)出來(lái)的像素點(diǎn)的置信度會(huì)越來(lái)越小。

  • data term的計(jì)算公式為:
    D(p) =\frac{|\bigtriangledown I^{\perp}_p \ast n_p|}{\alpha} \tag{3}
    公式3跟畅,這里是等照度向量與法向量n_p的點(diǎn)乘再求模長(zhǎng)咽筋,\alpha為歸一化因子。
    在計(jì)算等照度向量的時(shí)候需要先計(jì)算p點(diǎn)的image gradient徊件,等照度線向量為gradient逆時(shí)針旋轉(zhuǎn)90°奸攻,gradient代表了像素值變化最快的方向,而等照度線向量與gradient垂直虱痕,代表了變化最慢的方向睹耐。

  • image gradient
    \bigtriangledown f = [ \begin{matrix} g_x \\ g_y \end{matrix}]=[ \begin{matrix} \frac{\partial f}{\partial x} \\ \frac{\partial f}{\partial y} \end{matrix}] \tag{4}

暴力搜索

計(jì)算出每一個(gè)patch的優(yōu)先級(jí)之后,從中選出一個(gè)優(yōu)先級(jí)最高的patch作為待修復(fù)對(duì)象部翘,如Pt硝训。再使用暴力法,從源區(qū)域中選出一個(gè)與之最相近的塊Ps新思,將Ps中對(duì)應(yīng)的像素拷到Pt中(這里只需要修復(fù)Pt中缺失的像素點(diǎn))窖梁。使用暴力法的時(shí)候,衡量?jī)蓚€(gè)塊之間的距離時(shí)表牢,使用SSD(差的平方和)作為距離窄绒,由于Pt本身就缺失了部分像素值,所以計(jì)算的就是Pt非缺失像素和其他patch對(duì)應(yīng)位置像素值的SSD崔兴。

注意彰导,在修復(fù)過(guò)程的迭代中蛔翅,缺失區(qū)域逐漸變小,但是提供像素來(lái)源的目標(biāo)區(qū)域固定不變位谋。因?yàn)槟繕?biāo)區(qū)域中山析,修復(fù)出來(lái)的像素值可信度比較低,不予以采用掏父。

效果

原圖

缺失信息

修復(fù)之后

參考文獻(xiàn)

  1. Criminisi A, Pérez P, Toyama K. Region filling and object removal by exemplar-based image inpainting[J]. IEEE Transactions on image processing, 2004, 13(9): 1200-1212.
  2. Criminisi A, Perez P, Toyama K. Object removal by exemplar-based inpainting[C]//Computer Vision and Pattern Recognition, 2003. Proceedings. 2003 IEEE Computer Society Conference on. IEEE, 2003, 2: II-II.
  3. https://github.com/IouJenLiu/Region-Filling-and-Object-Removal
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末笋轨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子赊淑,更是在濱河造成了極大的恐慌爵政,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陶缺,死亡現(xiàn)場(chǎng)離奇詭異钾挟,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)饱岸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門掺出,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人苫费,你說(shuō)我怎么就攤上這事汤锨。” “怎么了百框?”我有些...
    開(kāi)封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵闲礼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我铐维,道長(zhǎng)位仁,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任方椎,我火速辦了婚禮,結(jié)果婚禮上钧嘶,老公的妹妹穿的比我還像新娘棠众。我一直安慰自己,他們只是感情好有决,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布闸拿。 她就那樣靜靜地躺著,像睡著了一般书幕。 火紅的嫁衣襯著肌膚如雪新荤。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天台汇,我揣著相機(jī)與錄音苛骨,去河邊找鬼篱瞎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛痒芝,可吹牛的內(nèi)容都是我干的俐筋。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼严衬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼澄者!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起请琳,我...
    開(kāi)封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤粱挡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后俄精,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體询筏,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年嘀倒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屈留。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡测蘑,死狀恐怖灌危,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碳胳,我是刑警寧澤勇蝙,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站挨约,受9級(jí)特大地震影響味混,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诫惭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一翁锡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夕土,春花似錦馆衔、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至篮撑,卻和暖如春减细,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赢笨。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工未蝌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驮吱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓树埠,卻偏偏與公主長(zhǎng)得像糠馆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子怎憋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350