资源简介
Java版的Bayes自然图像抠图,其中包括了一个Matrix矩阵类,除了基本运算外,还实现了求逆、特征向量、特征值、线性方程组求解。
代码片段和文件信息
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 < list.size(); ++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 < r; ++i) {
for (int j = 0; j < l; ++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() < minSize || bg_set.size() < minSize)
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个文件信息
相关资源
- 算法_英文第4版_RobertSedgewick(纯原版
- 数据结构与算法分析 java语言描述第
- 遗传算法多份源代码matalabjava,c++都有
- Java常用算法手册第3版.宋娟(带详细
- 基于android的每日新闻推荐APP
- 《名企算法与数据结构题目最优解》
- 数字图像处理:Java语言算法描述_带书
- 韩顺平_Java数据结构和算法.pptx
- 算法java版
- 《基于遗传算法的自动组卷系统》毕
- Java的数据结构与算法分析第二版
- 数据结构与算法分析 java语言描述原书
- 操作系统 进程调度算法实现Android实现
- 数据结构与算法 Java语言版
- 算法(英文版)(第4版).pdf
- 数据结构与算法分析:Java语言描述第
- 基于Android的WIFI室内定位技术研究
- 源码:基于离散点的构TIN算法(三角
- 《JavaScrit数据结构与算法(第2版)》
- Java常用算法手册
- 数据结构与算法分析-Java语言描述 第
- java数据结构与算法
- Java数据结构和算法中文第二版
- 漫画算法小灰的算法之旅
- android 高斯模糊算法
- 《Java数据结构和算法》第2版超清晰
- 数据结构与算法分析——Java语言描述
- 数据结构与算法分析 java语言描述原书
- 数据结构与算法分析——java语言描述
- 数据结构与算法分析 Java语言描述 第
评论
共有 条评论