Gambar Inpainting
Dalam bab ini, gambar inpainting algoritma yang dibahas. Kami terlebih dahulu
memperkenalkan prinsip inpainting gambar, dan kemudian dua jenis algoritma
inpainting yang rinci, termasuk PDE-based dan contoh berbasis inpainting
getaran.
6.1 Introduction
1
6.1.1 T e k n o l o g i Pengambilan Gambar
Berorientasi Struktur
Untuk pewarnaan gambar struktur, kategori utama dari teknik ini adalah untuk
membangun Persamaan Diferensial Parsial (PDE). Gagasan utamanya adalah
memanfaatkan sepenuhnya informasi tepi di sekitar area yang rusak, dan menyebarkan
informasi tersebut ke area yang akan dipulihkan dengan mekanisme penyebaran,
sehingga memperoleh hasil perbaikan yang lebih baik. Bahkan, pewarnaan gambar
berbasis PDE menggunakan persamaan difusi termal dalam fisika untuk menyebarkan
informasi di sekitar area yang akan diperbaiki ke dalam area patch. Ini mengubah
proses pewarnaan gambar menjadi serangkaian persamaan diferensial parsial atau
model fungsional energi yang dapat diproses oleh iterasi numerik dan optimasi cerdas.
Algoritme lukisan cat yang khas berdasarkan struktur meliputi: model
Bertalmio-Sapiro-Caselles-Ballester (BSCB), model Curvature Driven Diffusions
(CDD) [3, 4], model Total Variation (TV), model eluler Euler [5], Mumford - Model
Shah [6], model Mumford-Shah-Euler [7] dan seterusnya. Seperti semua yang lain,
metode pewarnaan struktural memiliki kelebihan dan kekurangan, algoritma
semacam ini hanya cocok untuk gambar yang halus, atau untuk mengisi gambar
dengan area kerusakan yang kecil.
Model BSCB bertujuan untuk membangun model restorasi gambar dengan garis
isophote sebagai arah ekstensi, yang menjaga sudut antara garis isophote dan tepi,
dan mengisi area yang akan dicat dengan menyebarkan informasi dengan lancar
dari area sekitarnya di arah isophotes di waktu yang sama. Algoritma ini bisa
mendapatkan efek perbaikan yang baik ketika rusak atau rusak di wilayah yang
sempit. Namun, karena karakteristik algoritme itu sendiri, metode semacam ini
beroperasi secara lambat dan gambar inpainting terkadang kabur. Model TV
menggunakan persamaan Euler-Lagrange untuk mewarnai gambar dengan
meminimalkan fungsi energi TV, ditambah dengan difusi anisotropik untuk
mempertahankan arah isofot. Ini bekerja sangat baik untuk pengecatan lokal
seperti digital zoom-in dan penghapusan teks [8-10]. Namun, model TV
menggunakan garis lurus terpendek untuk menghubungkan struktur batang yang
patah, itu tidak menghubungkan tepi fraktur dengan baik, sehingga mudah untuk
menghancurkan konektivitas penglihatan selama proses pewarnaan. Model CDD
memperluas algoritma TV untuk mempertimbangkan informasi geometris dengan
mendefinisikan kekuatan isofot, yang meningkatkan konektivitas visual sampai
batas tertentu. Jadi, bisa mengecat daerah yang rusak lebih besar. Karena model
CDD masih mengadopsi pendekatan linier ke area yang rusak, maka batas yang
rusak akan tetap memiliki fenomena fuzzy atau bahkan tidak mulus. Baik model
Mumford-Shah dan model Mumford-Shah-Euler akan membangun model data dan
model priori dari gambar, sehingga masalah lukisan gambar dapat dikonversi
menjadi masalah ekstrem fungsional, yang dapat diselesaikan dengan metode
variasional untuk mengembalikan gambar yang rusak.
Karena metode PDE itu sendiri tidak memperhitungkan urutan urutan
pewarnaan, dan kurangnya pertimbangan tentang bagian frekuensi tinggi dari
gambar. Jadi, itu akan menimbulkan ambiguitas dalam proses propagasi, terutama
dalam memperbaiki area yang rusak besar. Selain itu, karena metode perbaikan
berbasis PDE hanya mempertimbangkan lapisan struktur gambar, informasi
berharga dalam tekstur sering dikaburkan oleh Model PDE, yang tidak bisa
2
mendapatkan hasil yang baik dalam pemulihan area tekstur.
6.1.2 TeknologiPengecatanGambarBerbasisTekstur
Pengecatan gambar berbasis tekstur [11, 12] dapat memahami detail struktur dan
tekstur gambar secara keseluruhan, dan kualitas restorasi yang relatif ideal. Selain
itu, kecepatan juga lebih baik daripada algoritma yang didasarkan pada PDE
variasional jelas [13], yang terutama digunakan untuk mengisi patch besar
informasi yang hilang dalam gambar. Ada dua pendekatan untuk jenis teknologi
ini: Yang pertama didasarkan pada dekomposisi gambar, yang menguraikan
gambar menjadi bagian struktural dan bagian tekstur, kemudian menggunakan
model BSCB untuk mengembalikan bagian struktural dan teknik sintesis tekstur
sampel nonparametrik untuk mengisi tekstur bagian. Akhirnya, hasil dari dua
bagian ini ditumpuk, yang merupakan gambar akhir yang dipulihkan; Yang lainnya
adalah teknik berbasis contoh yang menghasilkan tekstur baru dengan mengambil
sampel dan menyalin nilai warna dari sumber. Pertama, memilih titik piksel dari
batas tambalan yang akan diperbaiki sebagai seed awal, dengan mengambil titik ini
sebagai pusat, pilih blok tekstur yang sesuai sesuai dengan fitur tekstur gambar,
dan cari blok pencocokan tekstur terdekat di sekitar area yang akan diperbaiki
untuk mengganti blok tekstur. Di antara mereka, salah satu algoritma pewarnaan
berbasis contoh yang paling representatif dan kreatif adalah model Criminisi. Atas
dasar informasi struktur dan tekstur, algoritma menentukan urutan pewarnaan
sesuai dengan nilai fungsi prioritas, dan nilai ditentukan oleh item kepercayaan dan
item data (fungsi struktur) dari patch gambar. Terakhir, temukan blok pencocokan
optimal di bagian gambar yang diketahui menurut kriteria tertentu, perbarui blok
piksel untuk diperbaiki dengan informasi di blok pencocokan optimal hingga
seluruh area yang rusak diperbaiki.
3
Menurut formula Bayesian:
P (U )
P(U |U ) ⁼ 0 · P(U 0 |U ) (6.1)
P(U0 )
Jika gambar U0 diberikan, maka P (U0 ) adalah konstanta tetap yang ditetapkan
ke C. Di mana
‗
P(U |U0 ) C · P(U ) · P (U0 |U ) (6.2)
Dari penjelasan di atas, kita dapat melihat bahwa estimasi gambar U tergantung
pada dua kondisi, yaitu hubungan antara gambar yang diamati U0 dan U serta
probabilitas sebelumnya dari gambar berdasarkan tebakan terbaik. Kedua kondisi ini
masing-masing sesuai dengan dua model fisik dalam gambar yang dicat:
P(U |U0 ): Model data, yaitu, bagaimana gambar yang diamati U0 dapatkan dari
gambar asli U.
P(U ): Model apriori, yaitu, seperti apa rupa gambar aslinya.
E (U |U 0 ) = E (U ) + E (U 0 |U ) + const (6.4)
Ketika Anda mengambil energi minimum, istilah yang konstan dapat dibuang.
E (U) dan E(U|U0 ) masing-masing setara dengan model sebelumnya dan model
data dalam rumus probabilitas.
4
6.3 PengecilanGambarBerbasisPDE
Dari sudut pandang matematika, gambar inpainting adalah untuk mengisi gambar
di daerah yang akan diperbaiki sesuai dengan daerah yang akan dipulihkan, yang
termasuk dalam bidang pemulihan gambar. Model degradasi berikut sering diadopsi:
I0 = I + N (6.5)
di mana I 0 adalah gambar yang diamati, I adalah gambar asli (I= {I (x )}),
sedangkan N adalah noise putih tambahan. Untuk sebagian besar masalah pewarnaan
gambar, model data memiliki formulir berikut:
(6.6)
di mana Ω menunjukkan seluruh wilayah gambar [17], D mewakili area di mana
informasi yang hilang perlu ditambal, Ω \ D menunjukkan area di mana tidak ada
informasi yang hilang, I0 adalah bagian gambar yang tersedia di Ω \ D, sedangkan
saya adalah target gambar yang perlu dipulihkan.
Dengan asumsi bahwa N mematuhi distribusi Gaussian, maka fungsi energi E dari
model data dapat didefinisikan oleh kesalahan kuadrat rata-rata minimum:
(6.7)
Karena tidak ada data yang tersedia untuk D, model gambar (priori) lebih
penting untuk algoritma pewarnaan gambar daripada masalah restorasi tradisional
lainnya (seperti denoising, deblurring). Model gambar dapat diperoleh dari data
gambar melalui metode penyaringan, estimasi parametrik atau nonparametrik dan
entropi. Metode statistik ini penting untuk memperbaiki gambar dengan tekstur yang
kaya. Namun, untuk sebagian besar masalah restorasi, informasi geometris penting
(seperti batas) gambar sering hilang di area yang akan direkonstruksi. Untuk
mengembalikan informasi geometrik ini, model gambar perlu mendapatkan fitur
geometris ini terlebih dahulu, sementara sebagian besar model probabilitas
tradisional tidak memiliki karakteristik seperti itu. Untungnya, dalam banyak jenis
literatur, bentuk 'energi' yang diilhami oleh informasi geometrik memang ada, seperti
model Rudin-Osher-Fatermi, dan model Mumford-Shah, yang disebut metode
variasional.
Dalam pendekatan variasional, masalah pewarnaan gambar diubah menjadi
masalah optimisasi terbatas:
min E [I ]
s.t. E [I 0 |I ] ≤ σ 2 (6.8)
5
estimasi statistik yang sesuai. Menggunakan metode pengali Lagrange, masalah
kendala dapat ditransformasikan ke dalam masalah berikut yang tidak dibatasi:
min E [I ] + λE [I 0 |I ] (6.9)
Bagian ini terutama memperkenalkan dua jenis teknik variasional yang paling
penting berdasarkan model gambar geometris dan model yang dimodifikasi. Dalam
konten berikut, ∇, div, ∇2 mewakili operator gradien, divergensi dan Laplace,
masing-masing.
(6.11)
Dimana
Dengan demikian dapat dilihat bahwa nilai minimum penyelesaian fungsional (rumus
6.10) setara dengan penyelesaian persamaan diferensial parsial (rumus 6.11). Selain itu,
variabel waktu t dapat diperkenalkan, dan kemudian persamaan penurunan curam sangat
kecil diberikan oleh
6
6.3 PengecilanGambarBerbasisPDE
(6.12)
∂I
Dengan kata lain, dengan perubahan variabel waktu t , ketika ∂t → 0, the nilai
minimum yang diperlukan I diperoleh.
Dari sudut pandang perhitungan numerik, karena |∇ I | akan menjadi sangat kecil,
atau bahkan mendekati nol di area halus, jadi, dalam dua persamaan diferensial di
atas, untuk menghindari penyebut menjadi nol,biasanya ganti di v[∇ I / |∇ I |] dengan
di v[∇ I /|∇ I |ε ], dimana .
ε adalah parameter positif kecil. Dengan demikian masalah optimasi
menjadi
(6.13)
Seperti pada sebagian besar tugas pemrosesan yang berisi ambang (seperti denoising
dan deteksi tepi), parameter ε biasanya dapat dianggap sebagai ambang. Di wilayah
yang mulus di mana |∇ I | ≤ ε, model mencoba meniru pewarnaan
harmonik, sedangkan di daerah perbatasan di mana |∇ I | ≤ ε, model TV dapat
digunakan untuk pemrosesan.
Keuntungan utama dari model TV adalah pemeliharaannya terhadap
implementasi PDE numerik yang canggih dan ramah lingkungan, tetapi juga
menghancurkan prinsip konektivitas dari proses pelepasan manusia. Seperti yang
ditunjukkan pada Gambar 6.1, di mana ω mewakili lebar objek, ω1 mewakili lebar
area yang rusak, tidak peduli apa rasio ω ke ω1, seluruh bilah ditunjukkan pada
Gambar. 6.1b tampaknya menjadi tebakan terbaik bagi kebanyakan dari kita,
secara psikologis. Namun, untuk model TV, ketika ω1 <ω, hasil pewarnaan
ditunjukkan pada Gambar 6.1b, sedangkan ω1> ω, hasil pewarnaan ditunjukkan pada
Gambar 6.1c, yang menghancurkan prinsip konektivitas. Seperti dalam model TV,
kekuatan difusi hanya bergantung pada kontras atau kekuatan garis isofote, dan
itu tercermin oleh koefisien konduksi v 1 | ∇ I |, oleh karena itu, intensitas difusi
tidak tergantung pada informasi geometrik dari garis isophote. Untuk kurva bidang,
kelengkungan skalar k dapat mencerminkan informasi geometrisnya.
Ketika ω1> ω, dari hasil inpainting model TV, k sama dengan ± ∞ pada 4 sudut
a, b, c dan d.
7
Gambar. 6.2 Pixel target O dan tetangganya
(6.15)
dimana ɅO { PE , PN , PW , PS } mewakili empat piksel yang berdekatan dari
piksel target O. Untuk piksel target O, tentukan
(6.16)
Di sini, jika P = PE, maka p mewakili titik P e. Oleh karena itu, rumus (6.15)
menjadi
8
6.3 PengecilanGambarBerbasisPDE
(6.17)
Dengan cara ini, rumus (6.17) dapat ditulis ulang menjadi bentuk berulang Gauss-
Jacobi
(n) (n−1) (n−1) (n−1)
I
Ketika implementasi spesifik dibuat, masker digunakan untuk menentukan area yang
perlu di-dicat terlebih dahulu (masker untuk D perlu diberikan sebelumnya), dan
kemudian menurut informasi di sekitar area yang akan di-cat, algoritma inpainting
gambar digunakan untuk mengembalikan informasi secara otomatis, sesuai dengan
rumus (6.14), langkah-langkah algoritma adalah sebagai berikut:
(1) Baca gambar dan informasi topeng;
(2) Lakukan (3), (4), (5) langkah-langkah untuk setiap piksel dalam mask;
(3) Hitung nilai turunan pertama dan nilai modulus dari gradien piksel;
(4) Set λD (O) 1, jika piksel terletak di luar area yang dicat; jika tidak,
λD (O) 0;
(5) Dengan menghitung hP dan hO, nilai piksel baru diperoleh dan disimpan ke
dalam
gambar baru;
(6) Menghitung perbedaan antara gambar baru dan gambar lama, jika kurang dari
ambang yang diberikan, ganti gambar lama dengan gambar baru dan keluar; jika
tidak, lanjutkan ke langkah kedua.
Kode MATLAB dari algoritma ini ditunjukkan dalam PROGRAM 6.1 (Gbr. 6.3).
9
PROGRAMME 6.1: Pengecatan gambar menggunakan model variasi total
close all;
clear all;
clc;
img=double(imread('lena.jpg'));
mask=rgb2gray(imread('ma.jpg'))>16
0; [m n]=size(img);
for i=1:m
for j=1:n
if
mask(i,j)=
=0
img(i,j)=0;
end
end
end
imshow(img,[])
; lambda=0.2;
a=0.5;
imgn=img;
for l=1:300
for i=2:m-1
for j=2:n-1
if mask(i,j)==0
Un=sqrt((img(i,j)-img(i-1,j))^2+((img(i-1,j-1)-img(i-
1,j+1))/2)^2); Ue=sqrt((img(i,j)-img(i,j+1))^2+((img(i-1,j+1)-
img(i+1,j+1))/2)^2); Uw=sqrt((img(i,j)-img(i,j-1))^2+((img(i-
1,j-1)-img(i+1,j-1))/2)^2); Us=sqrt((img(i,j)-
img(i+1,j))^2+((img(i+1,j-1)-img(i+1,j+1))/2)^2);
Wn=1/sqrt(Un^2+a^2);
We=1/sqrt(Ue^2+a^2);
Ww=1/sqrt(Uw^2+a^2);
Ws=1/sqrt(Us^2+a^2);
Hon=Wn/((Wn+We+Ww+Ws)+lambda);
Hoe=We/((Wn+We+Ww+Ws)+lambda);
How=Ww/((Wn+We+Ww+Ws)+lambda);
Hos=Ws/((Wn+We+Ww+Ws)+lambda);
Hoo=lambda/((Wn+We+Ww+Ws)+lambd
a);
10
6.3 Variational PDE-Based Image Inpainting
imgn(i,j)=Hon*img(i-1,j)+Hoe*img(i,j+1)+How*img(i,j- 1)+Hos*img(i+1,j)+Hoo*img(i,j);
end
end
end
img=imgn;
end
figure;
imshow(img,[])
Seperti yang ditunjukkan pada Gambar 6.1, yang paling kanan adalah output dari
pengecatan TV, di mana, kelengkungan k = ± ∞ pada 4 sudut a, b, c, dan d. Namun,
dari perspektif psikologi visual, kelengkungan dari 4 sudut ini harus nol, yaitu,
selama proses pengecatan gambar, kelengkungan k harus sekecil mungkin untuk
mendapatkan gambar yang sesuai dengan visi manusia. Berdasarkan analisis
tersebut, Chan dan Shen memodifikasi model TV dan mengusulkan difusi baru
Curvature-Driven Model pewarnaan Difusi (CDD) [25-28].
Dalam model pewarnaan CDD, koefisien konduktivitas TV dimodifikasi menjadi
v = g(|k| / |∇ I |), di mana g didefinisikan sebagai
219
(a) original image (b) inpainted image
Fig. 6.4 Hasil pewarnaan CDD
220
else
mask(i,j,1) = 0;
mask(i,j,2) = 0;
mask(i,j,3) = 0;
end
end
end
figure(2);
imshow(mask);
a=zeros(width,height);
I=cat(3,a,2*a,3*a);
J=cat(3,a,2*a,3*a);
n = 1;
itertimes=1000;
tic;
while n <= itertimes
for i = 2:width-1
for j = 2:height/3-1
if (mask(i,j+1,1) == 255)||(mask(i,j-1,1) == 255)||(mask(i+1,j,1) == 255)||(mask(i-1,j,1) ==
255)
for k=1:3
grid_w(k) = (img(i,j,k)-img(i-1,j,k))^2+(1.0/16)*(img(i-1,j+1,k)+img(i,j+1,k)-
img(i-1,j-1,k)-img(i,j-1,k))^2;
grid_e(k) = (img(i,j,k)-img(i+1,j,k))^2+(1.0/16)*(img(i,j+1,k)+img(i+1,j+1,k)-
img(i,j-1,k)-img(i+1,j-1,k))^2;
grid_s(k) = (img(i,j,k)-img(i,j-1,k))^2+(1.0/16)*(img(i+1,j,k)+img(i+1,j-1,k)-
img(i-1,j,k)-img(i-1,j-1,k))^2;
grid_n(k) = (img(i,j,k)-img(i,j+1,k))^2+(1.0/16)*(img(i+1,j,k)+img(i+1,j+1,k)-
img(i-1,j,k)-img(i-1,j+1,k))^2;
I(i,j,k)=0.5*(img(i+1,j,k)-img(i-1,j,k))/sqrt(0.25*(img(i+1,j,k)-img(i-
1,j,k))^2+0.25*(img(i,j+1,k)-img(i,j-1,k))^2+1);
J(i,j,k)=0.5*(img(i,j+1,k)-img(i,j-1,k))/sqrt(0.25*(img(i+1,j,k)-img(i-1,j,k))^2+0.25*(img(i,j+1,k)-
img(i,j-1,k))^2+1);
Kw(k)=sqrt((I(i,j,k)-I(i-1,j,k)+(I(i-1,j+1,k)+I(i,j+1,k)-I(i-1,j-
1,k)-I(i,j-1,k))/2)^2+(J(i,j,k)-J(i-1,j,k)+(J(i-1,j+1,k)+J(i,j+1,k)-J(i-1,j-1,k)-J(i,j-1,k))/2)^2);
Ke(k)=sqrt((I(i+1,j,k)-I(i,j,k)+(I(i,j+1,k)+I(i+1,j+1,k)-I(i,j-1,k)-I(i+1,j-1,k))/2)^2+(J(i+1,j,k)-
J(i,j,k)+(J(i,j+1,k)+J(i+1,j+1,k)-J(i,j-1,k)-J(i+1,j-1,k))/2)^2);
Ks(k)=sqrt((I(i,j,k)-I(i,j-1,k)+(I(i+1,j,k)+I(i+1,j-1,k)-I(i-1,j,k)-I(i-1,j-1,k))/2)^2+(J(i,j,k)-J(i,j-
1,k)+(J(i+1,j,k)+J(i+1,j-1,k)-J(i-1,j,k)-J(i-1,j-1,k))/2)^2);
221
Kn(k)=sqrt((I(i,j+1,k)-I(i,j,k)+(I(i+1,j,k)+I(i+1,j+1,k)-I(i-1,j,k)-I(i-
1,j+1,k))/2)^2+(J(i,j+1,k)- J(i,j,k)+(I(i+1,j,k)+J(i+1,j+1,k)-J(i-1,j,k)-J(i-
1,j+1,k))/2)^2);
w1(k) =
Kw(k)/sqrt(1+grid_w(k))+1; w2(k)
= Ke(k)/sqrt(1+grid_e(k))+1;
w3(k) = Ks(k)/sqrt(1+grid_s(k))+1;
w4(k) =
Kn(k)/sqrt(1+grid_n(k))+1;
img(i,j,k) =(w1(k)*img(i-1,j,k)+w2(k)*img(i+1,j,k)+w3(k)*img(i,j-1,k)
+w4(k)*img(i,j+1,k))/(w1(k)+w2(k)+w3(k)+w4(k));
end
end
end
end
n = n+1;
end
img = uint8(floor(img));
toc;
figure(3);
imshow(i
mg,[]);
imwrite(img,'CDD_result.bmp');
1
6.4 Algoritma Inpainting Gambar Berbasis
Contoh
Pendekatan berbasis contoh [29] adalah kelas yang penting dari algoritma
pewarnaan, di sini, kita akan menggambarkan metode Criminisi et al. untuk
memperbaiki komponen tekstur, yang mempertimbangkan isophote, mengambil
sampel patch yang paling cocok dari wilayah yang diketahui, dan
menempelkannya ke patch target di wilayah yang hilang.
Dan restorasi adalah proses pengambilan sampel yang didorong oleh isofote.
Seperti yang ditunjukkan pada Gambar. 6.5, mengingat gambar input I, Φ adalah
daerah sumber Ω, daerah yang akan diisi ditandai dengan δ Ω, dan batasnya
dilambangkan δ Ω, untuk setiap titik p pada kontur δ, tambalan Ψp dibangun
dengan p di tengah tambalan, np adalah normal terhadap kontur δ Ω, selain itu, ∇ I
⊥
p adalah arah (arah vertikal gradien) dan intensitas isophote pada titik p.
dimana | Ψ p | adalah area Ψp, di sini adalah ukuran modul, C (q) adalah istilah
kepercayaan dari titik q yang diinisialisasi ke:
Dari Persamaan. (6.22) dan (6.23), kita dapat melihat bahwa semakin banyak
piksel dalam area sampel tambalan, dengan kata lain, semakin banyak piksel telah
diisi, semakin tinggi item kepercayaan diri tambalan itu.
2
Dalam Persamaan. (6.21), D (p) mewakili kekuatan isophotes yang mengenai
batas dan meningkatkan prioritas patch yang isophote “mengalir” ke dalamnya, dan
didefinisikan sebagai berikut
di mana np adalah vektor satuan ortogonal ke depan δΩ, α adalah faktor yang
dinormalisasi (untuk gambar tingkat abu-abu 8-bit α = 255). Dari rumus (6.24) kita
dapat melihat bahwa, semakin besar intensitas isophote titik p pada δΩ, dan sudut
antara
vektor satuan lebih kecil, maka nilai yang dihitung D (p) lebih besar, yang
mencerminkan informasi struktural gambar.
Setelah prioritas setiap piksel di tepi dihitung, tambalan yang sesuai dengan titik p
dengan prioritas tertinggi ditentukan, pencarian global dilakukan pada keseluruhan
gambar untuk menemukan contoh paling mirip Ψ ∧q dari wilayah sumber Φ untuk
menyusun tambalan yang diberikan, Ψ ∧q memenuhi kondisi berikut:
3
di mana m, n menunjukkan panjang dan lebar tambalan, p menunjukkan piksel
dalam tambalan yang akan dipulihkan, dan q menunjukkan piksel di wilayah
sumber Φ. Dengan membandingkan nilai SSD yang sesuai dari setiap piksel yang
cocok, temukan contoh Ψ q di wilayah sumber Φ yang meminimalkan SSD, dan
kemudian menyalin data gambar dari Ψ ∧q to Ψ p, yang berhasil memperluas
informasi tekstur dan struktural gambar.
Dalam algoritma Criminis, setelah selesainya pemulihan, piksel asli yang tidak
diketahui berubah menjadi piksel yang diketahui, kita bisa melihat dari Persamaan.
(6.23) bahwa syarat kepercayaan piksel ini telah berubah, dan informasi yang
diperlukan untuk menghitung prioritas pengisian perlu diperbarui:
Karena kontur patch target yang akan dipulihkan telah berubah, kontur baru
telah dibentuk. Jika area restorasi baru kosong, pengecatan selesai.
Oleh karena itu, langkah-langkah algoritma pencitraan gambar Criminisi berbasis
contoh mencakup empat langkah utama berikut:
(1) Inisialisasi wilayah target secara manual, masukkan gambar, ekstraksi kontur
δΩ area yang akan dipulihkan.
(2) Menghitung prioritas semua piksel sesuai dengan rumus (6.21), dan blok yang
prioritasnya paling sesuai dipilih. Di mana istilah kepercayaan menunjukkan
proporsi piksel yang diketahui dalam tambalan yang akan dipulihkan ke seluruh
piksel, dan item data D (p) adalah produk titik dari isophote dan vektor satuan pada
titik piksel p.
(3) Mencari contoh gambar yang paling mirip Ψ ∧q dari wilayah sumber,
memperbarui informasi yang tidak diketahui menurut informasi yang sesuai, di
mana Ψ ∧q ditentukan oleh rumus (6.25), yang SSD-nya berada di antara wilayah
yang diketahui minimum.
(4) Mengajukan informasi, di mana batas δΩ wilayah target dan informasi yang
diperlukan untuk mendapatkan prioritas perlu ditingkatkan.
Ulangi langkah-langkah di atas sampai area target Ω = φ, lalu keluar dari loop
dan pengecatan selesai.
Kode MATLAB dari pengecatan gambar berbasis [29-33] ditunjukkan dalam
PROGRAM 6.3.
4
6.4 Exemplar-Based Image Inpainting Algorithm
5
[ix(:,:,3),iy(:,:,3)] = gradient(img(:,:,3));
[ix(:,:,2),iy(:,:,2)] = gradient(img(:,:,2));
[ix(:,:,1),iy(:,:,1)] = gradient(img(:,:,1));
ix = sum(ix,3)/(3*255); iy = sum(iy,3)/(3*255);
%------------------------------------------------------------------------
% Initializes the confidence term C and the data item D
C = double(sourceRegion);
D = repmat(-.1,sz);
%image inpainting (until all damaged areas have been repaired)
while any(fillRegion(:))
% seek for the edge
dR = find(conv2(double(fillRegion),[1,1,1;1,-
8,1;1,1,1],'same')>0); [Nx,Ny] = gradient(double(~fillRegion));
N = [Nx(dR(:))
Ny(dR(:))];
N(~isfinite(N))=0;
%calculate the confidence
value for k=dR'
Hp = qukuai_9(sz,k);
q = Hp(~(fillRegion(Hp)));
C(k) =
sum(C(q))/numel(Hp);
end
% calculate the
priority
D(dR) = abs(Ix(dR).*N(:,1)+Iy(dR).*N(:,2)) /255;
priorities =C(dR).*D(dR);
% Find out the largest priority block Hp
[unused,ndx] = max(priorities(:));
p = dR(ndx(1));
%---------------------
[Hp,rows,cols] = qukuai_9(sz,p); %the size is
9x9 toFill=fillRegion(Hp);
Wpatch=img(rows,cols,:); % Get the block to be repaired
%------------------------------------------------------------------------
% Use the global search to find the best match block
Hq=whole_match(z1,z2,img,Wpatch,fillColor);
%------------------------------------------------------------------------
% Update the fill area
fillRegion(Hp(toFill)) =
false;
6
6.4 Algoritma Inpainting Gambar Berbasis Contoh
7
for jj=1:numhang
LJ(jj,:)=cols;% the matrix formed by expanding lines
end
Hp=(LJ-1)*sz(1)+HJ;% Get the block to be repaired (the specific location in the image)
%%**************************************************************************
% Global search to find the best matching block (color image)
%**************************************************************************
function Block=whole_match(zx,zy,img,Wpatch,fillColor)
%zx,zy is the size of the
image aa=size(Wpatch,1);
bb=size(Wpatch,2);% The actual size of the block to be
repaired sx=zx-aa+1;
sy=zy-bb+1;% Determines the maximum value of the search
area all=aa*bb;% One-dimensional size
min=1.0000e+10;% Initial value
% Calculate the distance between the found matching block and the block to be repaired at the
known pixel (just the known pixel)
for i=1:sx
for j=1:sy
Mpatch=img(i:i+aa-1,j:j+bb-1,:);% Get the same size as the block to be repaired in the
image
posunme=Mpatch(:,:,1)==fillColor(1)&Mpatch(:,:,2)==fillColor(2)&Mpatch(:,:,3)==fillColor(3);
if any(posunme(:))%It shows that there is a broken point which is not the best matching
block to be repaired
continue;
end
Err=0;
for gg=1:aa*bb
% Traverse each pixel in the block
pf=Wpatch(gg)==fillColor(1)&Wpatch(gg+all)==fillColor(2)&Wpatch(gg+2*all)==fillCol
or(3);
if pf % Indicating that the location of the pixel is broken, do not participate in
the calculation of distance
continue;
end
cha=Wpatch(gg)-Mpatch(gg);Err=Err+cha*cha;
cha=Wpatch(gg+all)-Mpatch(gg+all);Err=Err+cha*cha;
cha=Wpatch(gg+2*all)-
end Mpatch(gg+2*all);Err=Err+cha*cha;
if Err<min
min=Err;% Take the blocks that minimize the error and note their starting position in the
8
6.4 Exemplar-Based Image Inpainting Algorithm
image
hk=i;
lk=j;
end
end
end
rows=hk:hk+aa-1;
cols=lk:lk+bb-1;% The best matching block is the block with the smallest error
Block=form_patch(rows,cols,zx);
%---------------------------------------------------------------------
% ind2img Convert index images to RGB images
function img2 = ind2img(ind,img)
for i=3:-1:1, temp=img(:,:,i); img2(:,:,i)=temp(ind); end;
%----------------------------------------------------------------------
% Converting RGB images into index images
%---------------------------------------------------------------------
function ind = img2ind(img)
s=size(img); ind=reshape(1:s(1)*s(2),s(1),s(2));
% calculate the PSNR value
%-------------------------------------------------------------------------
function PSNR=PSNR(u,v)
[m,n]=size(u(:,:,1));
a=0;
for i=1:m
for j=1:n
t(i,j,1)=u(i,j,1)-v(i,j,1);
a=a+t(i,j,1)^2;
end
end
mse=a/(m*n);
PSNR_R=10*log10(255^2/mse);
b=0;
for i=1:m
for j=1:n
t(i,j,2)=u(i,j,2)-v(i,j,2);
b=b+t(i,j,2)^2;
end
end
mse=b/(m*n);
PSNR_G=10*log10(255^2/mse);
c=0;
9
(a) original image (b) inpainted image
Fig. 6.6 Perbandingan bunga sebelum dan sesudah pewarnaan
for i=1:m
for j=1:n
t(i,j,3)=u(i,j,3)-v(i,j,3);
c=c+t(i,j,3)^2;
end
end
mse=c/(m*n);
PSNR_B=10*log10(255^2/mse);
PSNR=(PSNR_R+PSNR_G+PSNR_B)/
3;
Pada Gambar 6.6, percobaan simulasi dilakukan. Dapat dilihat dari hasil
yang dipulihkan bahwa metode ini dapat memperoleh fitur tekstur yang akurat untuk
informasi tekstur directional yang kuat.
Referensi
1. Shu-gen W, Jing-ling Z (2004) Image inpainting for information lostarea based on the texture
matching approach. Bullet Surv Mapp 12:21–23
2. Bertalmio M, Sapiro G, Caselles V, et al (2000) Image in painting. In: Proceedings of interna-
tional conference on computer graphics and interactive techniques. New Orleans, Louisiana,
USA, pp 417–424
3. Chan TF, Shen JH (2001) Non-texture inpainting by curvature-driven diffusions (CDD). J Vis
Commun Image Represent 12(4):436–449
4. Chan TF, Shen JH (2001) Mathematical models for local non-texture inpainting. SIAM J Appl
Math 62(3):1019–1043
5. Chan TF, Kang SH, Shen JH (2002) Euler’s elastica and curvature based inpainting. SIAM J
Appl Math 63(2):564–592
10
References
6. Tsai A, Yezzi JA, Willsky AS (2001) Curve evolution implementation of the Mumford-Shah
functional for image segmentation, denoising, interpolation and magnification. IEEE Trans
Image Process 10(8):1169–1186
7. Esedoglu S, Shen JH (2002) Digital inpainting based on the Mum ford-Shah-Euler image
model. Eur J Appl Math 13(4):353–370
8. Tang F, Ying YT, Wang J et al (2004) A novel texture synthes is based algorithm for object
removal in photographs. In: Proceedings of N in the Asian computing science conference.
Chiang Mai, Thailand, pp 248–258
9. Criminisi A, Perez P, Toyama K (2003) Object removal by exemplar-based inpainting. In: Pro-
ceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition,
vol 2. Monona Terrace Convention Center Madison, Wisconsin, USA, pp 18–20
10. Rudin L, Osher S, Faterni E (1992) Nonlinear total variation based noise removal algorithms.
Physica D 60(1–4):259–268
11. Bertalmio M, Vese L, Sapiro G, et al Simultaneous texture and structure image in painting.
IEEE Trans Image Process 12(8):882–889
12. Efros AA, Leung TK (1999) Texture synthesis by non-parametric sampling. In: Proceedings
of the IEEE computer society international conference on computer vision vol 2. Washington
DC, USA, pp 1033–1038
13. Harald G. (2004) A combined PDE and texture synthesis approach to in painting. In: Pro-
ceedings of 8th European conference on computer vision, vol 2. Prague, Czech Republic, pp
214–224
14. Mumford D, Shah J (1989) Optimal approximations by piecewise smooth functions and asso-
ciated variational problems. Commun Pure Appl Math 42(5):577–685
15. Shen JH (2004) Bayesian inpainting based on geometric image models [EB/OL]. http://www.
math.ucla.edu/~imagers/htmls/inp.html. Accessed 28 Nov 2004
16. Mumford D. Elastica and computer vision. In: Bajaj C (ed) Algebraic geometry and its appli-
cations. Springer, New York, pp 491–506
17. Rane SD, Sapiro G, Bertalmio M (2003) Structure and texture filling-in of missing image
blocks in wireless transmission and compression applications. IEEE Trans Image Process
12(3):296–303
18. Yamauchi H, Haber J, Seidel HP (2003) Image restoration using multire solution texture synthe-
sis. In: Proceedings of computer graphics international conference (CGI 2003). Tokyo, Japan,
pp 1530–1552
19. Drori I, Daniel CO, Hezy Y (2003) Fragment based image completion. ACM Trans
Graph 22(3):303–312
20. Zhang YJ, Xiao JG, Shah M (2005) Region completion in a single image [EB/OL]. www.cs.u
c.fedu/~vision/papers/zhang_xiao_shah_EG2004.pdf. Accessed 21 April 2005
21. Chan FT, Shen JH (2004) Variational image inpainting [EB/OL]. http://www.math.ucla.edu/~
imagers/htmls/inp.html. Accessed 28 April 2005
22. Costanzino N (2004) EN161 project presentation III: structure inpainting via variational meth-
ods [EB/OL]. http://mountains.ece.umn.edu/~guille/inpainting.html. Accessed 28 April 2005
23. Xu WW, Pang ZG, Zhang MM (2002) Image inpainting based on total variational model. J
Image Graph 7(4):351–355
24. Cohen A, Dahman W, Daubechies I et al (2004) Tree approximation and optimal encoding
[EB/OL]. http://www.math.sc.edu/~devore/publications/9909.pdf. Accessed 21 Nov 2004
25. Starck JL, Nguyen MK, Murtagh F. Wavelets and curvelets for image deconvolution: a com-
bined approach. Signal Process 83(10):2279–2283.
26. Donoho DL (2000) Beam lets. In: Invited talk at IMA workshop on image analysis and low
level vision. University of Minnesota, Minnesota, USA
27. Chuang YY, Curless B, Salesin DH et al (2001) A bayesian approach to digital matting. In: Pro-
ceedings of IEEE computer society’s conference on computer vision and pattern recognition.
Hawaii, USA, pp 264–271
28. Lin SY, Shi JY (2005) Fast natural image matting in perceptual color space. Comput
Graph 29(3):403–414
11
29. Criminisi A, Perez P, Toyama K (2004) Region filling and object removal by exemplar-based
image inpainting. IEEE Trans Image Process 13(9):1200–1212
30. Harrison P (2001) A nonhierarchical procedure for resynthesis of complex texture. In: Pro-
ceedings of 9th International conference on central europe computer graphics, visualization,
and computer vision [C/OL], Plzen, Czech Republic. Feb. 2001. http://www.csse.monash.edu.
au/~pfh/resynthesizer/
31. Borikar S, Biswas KK, Pattanaik S (2205) Fast algorithm for completion of images with natural
scenes [EB/OL]. http://www.graphics.cs.uc.fedu/borikar/BorikarPaper.pdf. Accessed 20 April
2005
32. Cheng WH, Hsieh CW, Lin SK et al (2005) Robust algorithm for exemplar-based image
inpainting [EB/OL]. http://www.cmlab.csie.ntu.edu.tw/~wisley/publications/CGIV_2005.pdf
Accessed 18 April 2005
33. Cheng KY (2005) Research on improving exemplar-based inpainting [EB/OL]. http://graphic
s.csie.ntu.edu.tw/~kyatapi/Cheng.pdf, Accessed 22 April 2005
12