Skip to content

Examples

Domingo Mery edited this page Dec 9, 2018 · 25 revisions

1. Applications

Fully automated design of a computer vision system

In this example, we show how to read images from a directory, label the images in classes, extract features, select features, select a classifier and evaluate the performance in only 12 lines! see Balu Code. See methodology in this paper.

See how can be used this 10-line code to design automatically a computer vision system to detect faces. In the dataset, there are 60 faces and 200 no-faces. Using only LBP features, Balu is able to select 15 features and a classifier with a performance of 95% validated with cross-validation (warning: the 95% is achieved in this data set, no warranty for other data sets) see Balu Code

Automated detection using a tracking algorithm in multiple X-ray views

In this example, we show how to detect pen tips in pencil cases using a tracking algorithm see Balu Code. Details of the method are published in this paper and video. If you want to use the graphic user interface shown in this video, execute the command Btr_gui and load the file pencase.mat.

2. Image Processing

Segmentation of an object in homogeneous background

With only this command Bio_segshow('testimg1.jpg') you can obtain this figure. In addition, you can test any segmentation algorithm using simple commands like the followings bellow. Details of the method are published in this paper.

I = imread('testimg2.jpg');

Bio_segshow(I,'Bim_segpca');

or

R = Bim_segpca(I);

imshow(R)

Segmentation using clustering

Try this command to segment in this image the sky, the clouds and the palm:

I = imread('testimg9.jpg');

Bim_segkmeans(I,3,1,1);

Segmentation of details

With only the following commands you can segment the well-known rice image of Matlab:

I = imread('rice.png');

figure;imshow(I)

[F,m] = Bim_segmowgli(I,[],40,1.5);

figure;imshow(F,[])

Segmentation using sliding windows

In this example, you can see how welding defects can be detected using sliding windows. The example selects 100 'no-defects' and 100 'defects' from a training image (where the ideal segmentation is apriori known). Afterward, LBP features are extracted and an LDA classifier is trained using SFS selected features. Finally, the trained classifier is used to segment a test image see Balu Code. Details of the method are published in this paper.

Interactive segmentation

Sometimes you need to separate certain objects of an image, and no segmentation approach works fine. Try the function Bim_regiongrow with this image, it is easy for example to separate the pen tips using this tool.

Lab conversion

If you want to calibrate your computer vision system in order to process Lab color images (see our paper), first you have to estimate the parameters of the model M that converts from RGB to Lab* using the function Bim_labparam, and second you can convert an RGB image X using the command:

Y = Bim_rgb2lab(X,M);

if you don't want to calibrate the computer vision system you can use the theoretical conversion implemented in the function Bim_rgb2lab0.

3. Feature Extraction

How to separate T & Y

In this example we show how to separate the characters 'T' and 'Y' using the eccentricity of the segmented regions. We use the train image to establish the threshold automatically and the test image to evaluate it see Balu Code.

Hu moments

In this example, we show how to use Hu moments to obtain a good separability in recognition of characters '1', '2' and '3' in this image see Balu Code.

How to build feature extraction functions in Balu

In this example, we show how to build a function that computes the centroid of a binary region see Balu Code.

Arrows recognition

In this example, we show how to separate three types of arrows using simple Balu commands. The classification is performed thresholding only one feature. See Training image, Test Image, and Balu Code.

Ellipses

In this example, we show how to fit a binary region to an ellipse. In example 1, we the best ellipses fitted to binary regions of this image. In example 2, we detect elliptical objects orientated to a determined angle see Balu Code.

Clone this wiki locally