3

I am writing a paper, which in the application used a function from a programming language (in this case, it is OpenCV function canny edge detection). When is or is not appropriate to explain the algorithm in mathematics/words and when or how should a function be referenced.

In this case, OpenCV explains the algorithm http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html

Should I just provide a link to this, as I did not modify the algorithm but it is an important part of the implementation decision.

Is there a standard way of deciding to reference the language, function, or original algorithm?

2 Answers 2

2

In this case I would opt to cite the paper in which Canny edge detection was introduced. Citing OpenCV as a whole is more appropriate than referring to a specific function, e.g. "we obtained our results using OpenCV [Bradski00]". Since you use OpenCV, you should also cite the related paper.

I would only refer to a specific function in a software package if it does not implement a known algorithm and therefore requires special attention.

2
  • 3
    I addition the guys at OpenCV suggest code.opencv.org/projects/opencv/wiki/CiteOpenCV Commented Apr 1, 2014 at 8:32
  • A particular function may matter (they may be more more ways to do it within a given package, implementation may matter (from numerical precision, through technical parameters and details, to possible bugs)). Commented Nov 17, 2014 at 10:35
2

Sometimes I see a reference to a particular function in a given library, and I consider it a great practice.

If the problem has various algorithms, or algorithms have various implementations (differing by technical details, numerical precision, etc) explicitly mentioning package will help the reader. I don't see a reason to conceal it.

For me:

  • BAD: "We performed edge detection." (How? Magic!).
  • OK: "We obtained our results using OpenCV [Bradski00]" (There may be more ways to do it, so happy guessing game for anyone trying to reimplement this.)
  • BETTER: "We performed edge detection with canny from OpenCV package [cit], which implements algorithm_name [cit]."
  • BEST: "We performed edge detection with canny from OpenCV package [cit], which implements algorithm_name [cit]. Full code is available at http://..."

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .