Claudio Rosito Jung, PhD
Institute of Informatics, Federal University of Rio Grande do Sul
Software
Some
MATLAB’s functions (.m or .p) and MEX files related to
my publications
are available for free download. The files that you are about to
download
are research material,
that is they were and they are intended
to be for research purposes only. The user must assume the entire risk
of using
the provided files. You
can distribute these files freely for non-commercial purposes, and
should
reference the authors (and corresponding articles) in case of
publishing any
result obtained with our programs.
Important:
you must have some of
MATLAB’s
toolbox to run the programs above. I think that they require
optimization,
signal processing, wavelets and maybe image processing toolboxes.
Automatic License Plate Recognition (ALPR):
Ground truth data, video and and code related to our paper License Plate Detection and Recognition in Unconstrained Scenarios
Code related to our paper A Flexible Approach for Automatic License Plate Recognition in Unconstrained Scenarios
Code (Python + Tensorflow) related to
our paper Real-Time
Brazilian License Plate Detection and Recognition Using Deep Convolutional
Neural Networks
Defocus Blur estimation for still images:
MATLAB code related to our paper Edge-Based Defocus Blur Estimation with Adaptive Scale Selection
Image
denoising and
enhancement:
jung_scharc_jei01.zip
–
files related to the paper
“Wavelet-based
method for image filtering using scale-space continuity”.
Instructions:
unzip the
.dll
file into a directory (some
MATLAB’s toolboxes are required).
Usage: y =
jung_scharc_jei01(x,N,alpha);
Here, x
denotes a
grayscale image, N is the
number of scales used for denoising, and alpha is
1
x 2 array containing the parameters α1
and α2,
used for
determining the
transition band (optional,
default is alpha=[0.2 1.2]);
Example: (using the file
house_noisy.jpg provided in the zip file)
x =
imread(‘house_noisy.jpg’);
y
=
jung_scharc_jei01(x,3,[0.4 1.4]);
scharc_jung_tip02.zip
–
files related to the paper
“Adaptive
Image Denoising Using Scale and Space Consistency”.
Instructions:
unzip the .dll
and the .m files into a directory (some MATLAB’s toolboxes
are required).
Usage:
y
=
scharc_jung_tip02(x,N);
Here,
x denotes a grayscale image, and N is the number of scales used for
denoising.
Example: (using the file
house_noisy.jpg
provided in the zip file)
x =
imread(‘house_noisy.jpg’);
y
= scharc_jung_tip02(x,3);
jung_scharc_prl03.zip
–
files related to the paper
“Adaptive
Adaptive image denoising and edge enhancement in scale-space using the
wavelet
transform.”.
Instructions:
unzip the .dll
and the .m files into a directory (some MATLAB’s toolboxes
are required).
Usage:
y
= jung_scharc_prl03
(x,N,enh,gamma);
Here,
x denotes a grayscale image, N is the number of scales used for
denoising, enh
is a 1 x N array containing the enhancement
factors βj
(optional), and
gamma is the γ parameter used for
consistency across scales
(optional,
default is gamma=0.3).
Example:
(using the file
house_noisy.jpg provided in the zip file)
x =
imread(‘house_noisy.jpg’);
y = jung_scharc_prl03
(x,3,[1 2 1.2]);
dermato_enhance_jstsp09.zip
– files related to the paper “Dermatological Color
Images in the Wavelet
Domain”.
Instructions:
unzip the all
files into a directory (some MATLAB’s toolboxes are
required).
Usage:
y
=
dermato_enhance_jstsp09(x,N,kappa);
Here, N
is the number of
scales used for
enhancement, and kappa is a 1 x N vector containing the enhancemente
factors
for each scale.
Example:
x =
imread('img_crop051.jpg');
y =
dermato_enhance_jstsp09(x,2,[1.2 1.0]);
Grayscale
Image segmentation
segwave_sib03.zip
– files
related to the paper
“Multiscale Image
Segmentation Using Wavelets and Watersheds”.
Instructions:
unzip the .dll
and the sample image into a directory (some MATLAB’s
toolboxes are required).
Usage:
y = segwave_sib03
(x,N,Tmerge);
Here,
x denotes a grayscale image, N is the number of scales used for
segmentation,
and Tmerge is contrast threshold used for region merging
(optional,
default
is
Tmerge=0).
Example:
(using the file
house_noisy.jpg provided in the zip file)
x =
imread(‘house_noisy.jpg’);
y =
segwave_sib03(x,2);
seg_imavis05.zip
– files related
to the paper “Robust Watershed Segmentation Using
Wavelets”.
Instructions:
unzip the all
files into a directory (some MATLAB’s toolboxes are required,
MATLAB 7
required).
Usage:
[y,w,enh]=seg_imavis05(x,J,post,T_max);
Here, x is the input
grayscale image (uint8
array with dimensions m x n), J is the number of scales used in the
wavelet
decomposition,
T is the area threshold
used in post-processing
(optional,
default = 0, meaning no post-processing), and beta_max
controls
the
amount of
enhancement in the pre-processing
stage
(optional, default = 7). y
is the piecewise constant segmented image,
w (optional) is the original image with segmentation boundaries
overlaid, and
enh
(optional) is the pre-processed
enhanced image.
Example:
[y,w,enh]=seg_imavis05(x0,2);
seglevel_imavis07.zip
–
files related to the paper “Wavelets
and Watersheds for Robust Multiscale Image
Segmentation”.
Instructions:
unzip the all
files into a directory (some MATLAB’s toolboxes are
required).
Usage:
[y,w]=seglevel_imavis07(x,J,Tc);
Here, x
is the input
grayscale image (uint8
array with dimensions m x n), J is the number of scales used in the
wavelet decomposition,
and Tc is the threshold
used for
region merging
(optional,
default = 0, meanin no post-processing).
y is the piecewise constant
segmented image, and w (optional) is the
original
image with segmentation boundaries
overlaid.
Example:
[y,w]=seglevel_imavis07(x,2,15);
Color
Image segmentation
waveseg_color_prl07.zip
– files
related to the paper “Unsupervised Multiscale Segmentation of
Color Images”.
Instructions:
unzip the all
files into a directory (some MATLAB’s toolboxes are
required).
Usage: y =
waveseg_color_prl07(x,J,Tc);
Here, x
is the input
color image (uint8 array
with dimensions m x n x 3), J is the number of scales used in the
wavelet decomposition (optional, default
according
to
paper), Tc is the
threshold used
for region merging (optional, default = 10), and y is the piecewise
constant
segmented image
Example:
y =
waveseg_color_prl07(x);
Background Subtraction
with Shadow Removal
camera_foreground_tm09.zip
– files related to the paper “Efficient Background
Subtraction and Shadow Removal for Monochromatic Video
Sequences. IEEE
Transactions on Multimedia”.
Instructions:
unzip the all
files into a directory (some MATLAB’s toolboxes are required).
Usage:
First build the
background model using
[w,msd,k,st]=camera_background_tm09(nframes);
Here, nframes is the number of frames.
Obs: the user must
write a function
x
= get_image(i) that loads the i-th image from
the video
sequence to an array x
Then, run
back
= camera_foreground_tm09(nframes,w,st,k);
to
obtain a stack of binary images containing the foreground pixels for
the range of frames defined in variable nframes
C/C++ code related to the
paper A Background Subtraction Model Adapted to
Illumination Changes" available here
Rectangle/Parallelogram
Detection
hough_rectangle.zip
– files
related to the paper “Rectangle Detection based on a Windowed
Hough Transform”.
Instructions:
unzip the all
files into a directory (some MATLAB’s toolboxes are
required).
Usage: [rectangles,
centers] =
detect_rectangles_paa(img, RMin, RMax, amax);
Here,
img is a binary
(edge image), RMin and
RMax are the internal and external radii of the ring-like window, and
amax is
the largest expected value
for the
minumim side of all rectangles (I guess
this parameter is not described
in the
original paper, but setting it to RMax should work).
Example:
load
ex_aerial_paper
[rectangles,
centers] =
detect_rectangles_paa(bw, RMin, RMax, RMax);
Note:
code
is really
messy, comments in portuguese
find_parallelogram.zip
–
files related to the paper “Parallelogram Detection Using the
Tiled Hough
Transform”.
Instructions:
unzip the all
files into a directory (some MATLAB’s toolboxes are
required).
Usage:
[paralelo, alfa,
lpicos,til] =
tile_parallelogram2(img,s_tile,RMin,angulo),
Here, img is a binary (edge
image), s_tile
is a 1 x 2 vector containig the sizes of the tiles, RMin is the minimum
radius
(as described in the paper),
and angulo
(optional) is the angle of
parallelograms to be detected.
Example:
load
book2_paper
[paralelo,
alfa, lpicos,til]
=
tile_parallelogram2(bw,s_tile,RMin);
Note:
code
is really
messy, comments in portuguese
Pedestrian tracking
Please go to Gustavo
Fuhr's research page for more details, videos, and MATLAB
code (C++
will be available soon).
Head-Shoulder Segmentation
Please go to Julio Jacques' research page for more details and MATLAB
code
Lane Boundary Detection and Classification
Files
related to the paper "Automatic Detection and Classification of Road
Lane Markings Using Onboard Vehicular Cameras" availabe here