Decide what counts as an edge before touching an operator
Edge detection fails quietly when the goal is vague. A map that looks impressive at full zoom can be useless if the boundaries that matter — a part silhouette, the stroke of a character, a cell wall — arrive broken or drowned in speckle. Start by naming the edges this task actually needs, because that decision drives every later choice of operator, smoothing radius, and threshold. Also decide the deliverable up front: a visible edge-map image for a report, or a documented operator recipe someone can re-run.
One channel, stretched, then denoised
Operators should measure brightness change, not color noise. Extract the luminance channel first, and stretch the histogram when faint boundaries hide inside a narrow contrast band — a stretched input often rescues edges that no operator setting could recover. Then suppress noise with a mild blur or low-pass pass, and write the radius down. Gradient work amplifies every small fluctuation, so an unsmoothed photo yields an edge map full of isolated dots. The radius is part of the recipe: a result that cannot be reproduced without it is not a result.
First-order operators: pick by noise and edge direction
Run the classics side by side on the same prepared input. Sobel, with its center-weighted window, is the default that rarely embarrasses anyone. Prewitt averages uniformly and answers more calmly on noisy scans. Roberts, working on a small diagonal window, is the fastest and the sharpest on diagonal edges, and also the first to fall apart when noise rises. The combined gradient tool shows the differences in one pass, which beats arguing about them from memory.
Second-order views and thresholded detectors
The Laplacian takes the other road: as a second-order operator it marks rapid intensity change with strong response and zero crossings, catching fine detail the first-order crew smooths over, at the price of higher noise sensitivity — one more reason it deserves smoothed input. For a deliverable rather than a study, the thresholded detector turns gradient magnitudes into clean binary strokes; its Canny path is usually the point where an academic comparison becomes a usable map.
Reproduce the result as an explicit kernel
The lab closes by making the recipe concrete. Rebuild the chosen effect through the standard kernel library, or write the matrix yourself when the numbers must be documented, ported to another toolchain, or matched against an OpenCV implementation. Verify that the same boundaries survive the rebuild; if the custom kernel drops the thin strokes the preset detector kept, the matrix is wrong, not the strokes. High-pass filtering offers a related detail-boosting view when the goal is enhancement rather than strict detection.
Where this lab stops
This lab produces edge maps and documented kernels from a still image. Converting an edge map into binary masks for measurement — thresholding, erosion, dilation, boolean combinations — belongs to binary-image-thresholding-and-morphology. Final-output cleanup such as noise reduction and sharpening a finished photograph belongs to image-padding-noise-and-sharpening, and color or tonal grading to photo-color-adjustment-and-artistic-filters.