資源簡介
Java版的Bayes自然圖像摳圖,其中包括了一個Matrix矩陣類,除了基本運算外,還實現(xiàn)了求逆、特征向量、特征值、線性方程組求解。
代碼片段和文件信息
package?hicamp.image.matting.bayes;
import?hicamp.image.matting.matrix.Matrix;
import?java.util.linkedList;
import?java.util.List;
import?java.util.ArrayList;
import?java.awt.Point;
public?class?BayesMatting?{
//?falg
public?static?final?double?BACK?=?0.0;
public?static?final?double?FORE?=?2.0;
public?static?final?double?UN?=?4.0;
//?constructor
public?BayesMatting(Matrix?source?Matrix?t)?{
S?=?source;
r?=?c?=?0;//?行列
init();
setParameter();
initMask(t);
}
//?execute?image?matting
public?void?exec()?{
List?list;
//?the?main?procession
do?{
list?=?Contour.getContour(uSolveMask);
for?(int?i?=?0;?i? r?=?list.get(i).x;
c?=?list.get(i).y;
solve();
}
}?while?(!list.isEmpty());
}
//?get?foreground
public?Matrix?getFore()?{
return?F;
}
//?get?background
public?Matrix?getBack()?{
return?B;
}
//?get?trimap
public?Matrix?getTrimap()?{
return?alpha;
}
//?premalloc?memory
private?void?init()?{
fg_set?=?new?linkedList();
bg_set?=?new?linkedList();
fg_w?=?new?linkedList();
bg_w?=?new?linkedList();
}
//?init?data
private?void?initMask(Matrix?t)?{
int?r?=?t.getRow();
int?l?=?t.getCol();
//
F?=?new?Matrix(r?*?3?l);
B?=?new?Matrix(r?*?3?l);
alpha?=?new?Matrix(r?l);
fMask?=?new?Matrix(r?l);
bMask?=?new?Matrix(r?l);
uMask?=?new?Matrix(r?l);
uSolveMask?=?new?Matrix(r?l);
//?init?fmask
for?(int?i?=?0;?i? for?(int?j?=?0;?j? for?(int?k?=?0;?k?3;?++k)?{
F.setElem(i?*?3?+?k?j?0);
B.setElem(i?*?3?+?k?j?0);
}
{
alpha.setElem(i?j?0);
fMask.setElem(i?j?0);
bMask.setElem(i?j?0);
uMask.setElem(i?j?0);
uSolveMask.setElem(i?j?0);
}
//
if?(t.getElem(i?j)?==?BACK)?{
bMask.setElem(i?j?1);
for?(int?k?=?0;?k?3;?++k)?{
B.setElem(i?*?3?+?k?j?S.getElem(i?*?3?+?k?j));
}
}?else?if?(t.getElem(i?j)?==?FORE)?{
alpha.setElem(i?j?1);
fMask.setElem(i?j?1);
for?(int?k?=?0;?k?3;?++k)?{
F.setElem(i?*?3?+?k?j?S.getElem(i?*?3?+?k?j));
}
}?else?{
uSolveMask.setElem(i?j?1);
uMask.setElem(i?j?1);
}
}
}
}
//?init?parameter
private?void?setParameter()?{
sigma?=?8.0f;
sigmac?=?0.01f;
}
//?threshold
private?int?minSize?=?10;
private?int?nSize?=?50;
private?double?minVar?=?1e-6;
//solve
private?void?solve()?{
//?get?sample?set
collectSampleSet();
//?if?set?of?sample?if?not?enough
if?(fg_set.size()? return;
//******************************
//System.out.println(r+““+c);
//******************************
List?fInvCov?=?new?ArrayList();
List?fMean?=?new?ArrayList();
List?bInvCov?=?new?ArrayList();
List?bMean?=?new?ArrayList();
//?cluster
BayesMatting_Cluster.cluster(fg_set?fg_w?fMean?fInvCov);
BayesM
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-04-20?09:44??BayesMatting\
?????文件?????????302??2013-11-01?13:46??BayesMatting\.classpath
?????文件?????????388??2014-04-12?16:10??BayesMatting\.project
?????文件?????????162??2013-12-10?12:21??BayesMatting\.reverse.properties
?????目錄???????????0??2013-10-31?18:21??BayesMatting\.settings\
?????文件?????????176??2013-10-11?21:23??BayesMatting\.settings\org.eclipse.core.resources.prefs
?????文件?????????629??2013-10-03?20:12??BayesMatting\.settings\org.eclipse.jdt.core.prefs
?????文件??????593482??2013-12-02?07:47??BayesMatting\111.png
?????文件??????593482??2013-12-02?09:11??BayesMatting\333
?????文件???????15759??2013-12-10?12:54??BayesMatting\a.uml
?????文件???????17378??2013-12-10?12:54??BayesMatting\a.umldi
?????文件??????131732??2013-11-23?13:15??BayesMatting\aa.uml
?????文件???????97365??2013-11-23?13:15??BayesMatting\aa.umldi
?????文件??????437899??2013-11-01?13:59??BayesMatting\bear_mix.png
?????目錄???????????0??2014-04-12?16:10??BayesMatting\bin\
?????目錄???????????0??2014-04-12?16:10??BayesMatting\bin\hicamp\
?????目錄???????????0??2014-04-12?16:10??BayesMatting\bin\hicamp\image\
?????目錄???????????0??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\
?????目錄???????????0??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\bayes\
?????文件???????10397??2014-04-20?10:39??BayesMatting\bin\hicamp\image\matting\bayes\BayesMatting.class
?????文件????????1760??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\bayes\BayesMatting_Cluster.class
?????文件????????1937??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\bayes\Contour.class
?????文件????????4298??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\bayes\ImageToMatrix.class
?????目錄???????????0??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\cluster\
?????文件????????2893??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\cluster\Cluster.class
?????文件????????3787??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\cluster\Node.class
?????目錄???????????0??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\gui\
?????文件????????5145??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\gui\JMyPanel.class
?????文件????????1073??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\gui\Main.class
?????文件?????????826??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\gui\Menu$1.class
?????文件?????????921??2014-04-12?16:10??BayesMatting\bin\hicamp\image\matting\gui\Menu$ProgressBar.class
............此處省略118個文件信息
評論
共有 條評論