-
大小: 15.67MB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2023-07-16
- 語(yǔ)言: C/C++
- 標(biāo)簽: PatchMatch??圖像修復(fù)??
資源簡(jiǎn)介
本資源是基于C++編寫(xiě)的patchmatch圖像修復(fù)代碼,編譯環(huán)境是基于vs2015+opencv3.x,在圖像修復(fù)之前需要先手動(dòng)將原始圖片的孔洞部分標(biāo)識(shí)出來(lái),具體的方法參考?jí)嚎s包里的參考圖片即可。
代碼片段和文件信息
#include?“patch.h“
//返回最小差值(最相似)的塊的代表數(shù)字,用于后續(xù)判斷
//GetMinPatch1的簡(jiǎn)化版
int?patch::GetMinPatch2(Mat?Dst?Mat?Src1?Mat?Src2)
{
float?dist1?=?Distance(Dst?Src1);
float?dist2?=?Distance(Dst?Src2);
if?(dist1? return?1;
else
return?2;
}
//迭代第二步:隨機(jī)搜索
//(rowcol)=(now_row?now_col):修復(fù)patch里的像素
void?patch::RandomSearch(Mat?Dst?Mat?Src?Mat?Mask?Mat?&Off?int?row?int?col)
{
Mat?DstPatch?=?GetPatch(Dst?row?col);//獲取修復(fù)基準(zhǔn)框,在框內(nèi)操作
//迭代指數(shù)
int?attenuate?=?0;
while?(true)
{
//獲取隨機(jī)參數(shù),在?[-1;1]?間
float?divcol?=?rand()?%?2000?/?1000.0f?-?1.0f;
float?divrow?=?rand()?%?2000?/?1000.0f?-?1.0f;
//減小框大小的公式,
評(píng)論
共有 條評(píng)論