Sketch out first 3 sections

These sections were originally IPython notebooks that I converted to markdown. This is missing a lot of explanatory text, but that will come later. I'm really not sure whether this is the right process for version control. I suspect, that each build will create new images, but I guess the text diffs are manageable (compared to diffs of ipynb files) so that's a definite plus.

Note that I created a separate file for plot helpers. I don't like having notebooks cluttered with code that isn't relevant to the topic. I plan on discussing the helpers, but just having them in a separate file minimizes distraction.
> 1) Does the thresholding happen on the "non-maximally supressed" image, or on the original gradient magnitude image? (The image shown below appears to be the latter).

It *should* happen on the non-maximally-suppressed image, but I don't have access to that unfortunately. I'll try to clarify that in the notes.

> 2) Do the low threshold pixels need to be adjacent to the high threshold ones, or just connected by a "bridge" of low threshold ones?

bridging is fine. I'll try to clarify this.

> 4) What's the actual algorithm achieved for finding these?

Binary propagation. I'm not sure how I feel about even mentioning this. The point here was to give students an intuitive feel for what a Canny filter does and how the free parameters affect the result. I think too many details can degrade the higher-level understanding. On the other hand, if you were planning to talk about binary propagation in the morphology section, it *would* be worth mentioning here.