A Hierarchical Data Structure for Image Representation and Probabilistic Inference

Welcome to GraphBPT

This software has been developed in part of the publication : Abdullah Al-Dujaili, François Merciol and Sébastien Lefèvre. GraphBPT: An Efficient Hierarchical Data Structure for Image Representation and Probabilistic Inference (ISMM) may 2015, Iceland accessible here

In */bin*, there are two jars,
IsmBpt2015.jar : GUI-like demo, it is also hosted here

bpt.jar : can be used in MATLAB as shown below, as well as to run the segmentation example in the paper.

```
java -jar bin/IsmmBpt2015.jar [–help] [-D dataDir] [image]
```

From MATLAB directory, run matlab:

```
% read an image
imgName = '../1.jpg'
img = imread(imgName);
[M,N,C] = size(img);
% build the tree
img = single(reshape(img,[M*N C]));
system(['java -cp ../bin/bpt.jar BinaryPartitionTree ' imgName]);
% get the nodes
nodes = getNodesWithPixels('isNoClass', true);
% show a region
showNodeRegion(img,M,N,C,nodes(end-1));
% build some features and show them
nodesFeautres = getNodesFeatures(nodes,img,M,N);
showNodesFeatures(M,N,1,1,nodes,nodesFeautres);
```

I have configured the tool to do the segmentation on the example image, I am assuming here you are having linux-64, as the inference engine is compiled for that. anyway, I have put the inference source file along, but you need to compile it with its depenedencies of libdai inference library (refer to the paper)

```
java -cp bin/bpt.jar TreeGraph [image]
```

If you write a scientific paper describing research that made use of this code, please cite the following paper:

```
@incollection{al2015graphbpt,
title={GraphBPT: An efficient hierarchical data structure for image representation and probabilistic inference},
author={Al-Dujaili, Abdullah and Merciol, Fran{\c{c}}ois and Lef{\`e}vre, S{\'e}bastien},
booktitle={Mathematical Morphology and Its Applications to Signal and Image Processing},
pages={301--312},
year={2015},
publisher={Springer}
}
```

Abdullah Al-Dujaili