aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2018-06-17 03:36:25 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2018-06-17 03:40:16 +0900
commita56d40b1bb9a4b7b1303c4c0d016d72ad034fbad (patch)
tree3f8c640ab8365d9f9b56a4db8ecfee94b4e4e5a3
parent82362f511d3a56534dc68b519d30af95abd7f5f2 (diff)
refactor: Change to `defun style`HEADmaster
-rw-r--r--flomap-canny.rkt44
1 files changed, 21 insertions, 23 deletions
diff --git a/flomap-canny.rkt b/flomap-canny.rkt
index 636e819..ed13559 100644
--- a/flomap-canny.rkt
+++ b/flomap-canny.rkt
@@ -13,14 +13,13 @@
(* (flomap-ref img 3 x y) 0.114)))))
(: flomap-canny (-> flomap #:sigma Flonum #:heigh Flonum #:low Flonum flomap))
-(define flomap-canny
- (λ (img #:sigma sigma #:heigh heigh #:low low)
- (let ([img
- (case (flomap-components img)
- [(4) (flomap-grayscale img)]
- [(1) img]
- [else (error "flomap-canny: invalid components")])])
- (canny img sigma heigh low))))
+(define (flomap-canny img #:sigma sigma #:heigh heigh #:low low)
+ (let ([img
+ (case (flomap-components img)
+ [(4) (flomap-grayscale img)]
+ [(1) img]
+ [else (error "flomap-canny: invalid components")])])
+ (canny img sigma heigh low)))
(provide flomap-canny)
(define-type Orient (Array (U 'horizontal 'positive-diagonal 'vertical 'negative-diagonal)))
@@ -65,18 +64,17 @@
(error "error")])))))
(: canny (-> flomap Flonum Flonum Flonum flomap))
-(define canny
- (lambda (fm sigma heigh low)
- (let* ([w (flomap-width fm)]
- [h (flomap-height fm)]
- [b (flomap-gaussian-blur fm sigma)]
- [sx (flomap-gradient-x b)]
- [sy (flomap-gradient-y b)]
- [mag (fmsqrt (fm+ (fmsqr sx) (fmsqr sy)))]
- [ori (tanθ->orient (fm/ sx sy))]
- [vec (make-flvector (* w h) -1.0)])
- (for* ([y (in-range h)]
- [x (in-range w)])
- (when (<= heigh (flomap-ref mag 0 x y))
- (trace! vec mag ori w h x y low)))
- (flomap vec 1 w h))))
+(define (canny fm sigma heigh low)
+ (let* ([w (flomap-width fm)]
+ [h (flomap-height fm)]
+ [b (flomap-gaussian-blur fm sigma)]
+ [sx (flomap-gradient-x b)]
+ [sy (flomap-gradient-y b)]
+ [mag (fmsqrt (fm+ (fmsqr sx) (fmsqr sy)))]
+ [ori (tanθ->orient (fm/ sx sy))]
+ [vec (make-flvector (* w h) -1.0)])
+ (for* ([y (in-range h)]
+ [x (in-range w)])
+ (when (<= heigh (flomap-ref mag 0 x y))
+ (trace! vec mag ori w h x y low)))
+ (flomap vec 1 w h)))