Parallelizing and Optimizing LIP-Canny Using NVIDIA CUDA

  • Rafael Palomar
  • José M. Palomares
  • José M. Castillo
  • Joaquín Olivares
  • Juan Gómez-Luna
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6098)


The Canny algorithm is a well known edge detector that is widely used in the previous processing stages in several algorithms related to computer vision. An alternative, the LIP-Canny algorithm, is based on a robust mathematical model closer to the human vision system, obtaining better results in terms of edge detection. In this work we describe LIP-Canny algorithm under the perspective from its parallelization and optimization by using the NVIDIA CUDA framework. Furthermore, we present comparative results between an implementation of this algorithm using NVIDIA CUDA and the analogue using a C/C++ approach.


Shared Memory Global Memory Traditional Operator General Purpose Graphic Processing Unit Traditional Operator Approach 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Canny, J.: A computational approach to edge detection. IEEE Transactions on Pattern Analysis and Machine Intelligence 8(6), 679–698 (1986)CrossRefGoogle Scholar
  2. 2.
    Sobel, I., Feldman, G.: A 3x3 isotropic gradient operator for image processing. Talk at the Stanford Artificial Project (1968)Google Scholar
  3. 3.
    Sobel, I.: Camera Models and Machine Perception. Ph.d. thesis, Standford University (1970)Google Scholar
  4. 4.
    Palomares, J.M., González, J., Ros, E.: Detección de bordes en imágenes con sombras mediante LIP–Canny. In: AERFAI 2005 (2005)Google Scholar
  5. 5.
    Riegel, E., Indinger, T., Adams, N.: Implementation of a Lattice-Boltzmann method for numerical fluid mechanics using the nVIDIA CUDA technology (2009)Google Scholar
  6. 6.
    Kavanagh, G., Lewis, M., Massingill, B.: GPGPU planetary simulations with CUDA. In: Proceedings of the 2008 International Conference on Scientific Computing, CSC 2008, pp. 180–185 (2008)Google Scholar
  7. 7.
    Luo, Y., Duraiswami, R.: Canny edge detection on NVIDIA CUDA. In: 2008 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops, CVPR Workshops (2008)Google Scholar
  8. 8.
    Gómez-Luna, J., González-Linares, J.M., Benavides, J.I., Guil, N.: Parallelization of a video segmentation algorithm on CUDA–enabled graphics processing units. In: Sips, H., Epema, D., Lin, H.-X. (eds.) Euro-Par 2009. LNCS, vol. 5704, pp. 924–935. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  9. 9.
    Jourlin, P.: A model for logarithmic image processing. Journal of Microscopy 149, 21–35 (1988)Google Scholar
  10. 10.
    Pinoli, J.: The logarithmic image processing model: Connections with human brightness perception and contrast estimators. Journal of Mathematical Image Processing 7, 341–358 (1997)CrossRefGoogle Scholar
  11. 11.
    NVIDIA: NVIDIA CUDA Programming Guide (2009)Google Scholar
  12. 12.
    NVIDIA: NVIDIA CUDA C Programming Best Practices Guide. CUDA Toolkit 2.3. (2009)Google Scholar
  13. 13.
    Podlozhnyuk, V.: Image Convolution with CUDAGoogle Scholar
  14. 14.
    Palomares, J.M., González, J., Ros, E., Prieto, A.: General logarithmic image processing convolution. IEEE Transactions on Image Processing 15(11), 3602–3608 (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Rafael Palomar
    • 1
  • José M. Palomares
    • 1
  • José M. Castillo
    • 1
  • Joaquín Olivares
    • 1
  • Juan Gómez-Luna
    • 1
  1. 1.Department of Computer Architecture, Electronics and Electronic Technology Computer Architecture AreaUniversity of Córdoba 

Personalised recommendations