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