During the summer I am teaching a programming workshop for students in a high school computer science major. The purpose of the workshop is to introduce them to image processing, and to have them experience using it.
Naturally, an image processing library is necessary (teaching in java, so probably JavaCV, though I might go for python and then just do openCV, but the question isn't about library choice).
These libraries do calculations with relatively advanced mathematics. Things that are aren't taught in the school, nor anything close to the level of math they know (It requires knowledge of matrix multiplication and many other things). The students are at an advanced level in mathematics (calculus, algebra, vectors and a few other things).
Should I teach the mathematics behind those computations, before teaching the image processing material? I think they can understand the math, if it is taught. Is that knowledge necessary to understanding how those libraries work?
The image processing in question is feature extraction, edge detection etc.
Examples of a mathematical background is how to write an algorithm to compute the determinant of a matrix, or one for matrix multiplication etc.