(require 'modaaregion) ; specific globals (define connexity 1) ; 0 means 4-connexity, 1 is 8-connexity (define imaref (new TBitmapABGR)) (define rle #f) (define imgregs #f) (define region-list0 ()) (define region-list ()) (define x-step 1) (define y-step 1) (define thresh1 25) (define thresh2 45) (define min-rsize 20) (define ref-delta 6) ;; ============================================================ (define (compute-regions z) (send imgregs Reset rle) (send imgregs init) (send imgregs exec (send rle GetSizey) connexity) (send imgregs pass2) (and z (RegionList imgregs min-rsize))) ; ======================================== (define (region-process-init) (set! imaref (get-image ima-ix)) (hori_seg::pool_init 30000) (pv_region::pool_init 10000) (RLEImage::SetParams x-step y-step thresh1 thresh2) (set! rle (new RLEImage imaref imaref)) (set! imgregs (new img2regs rle)) ) (define (region-process-image) ; process current-image (if (>= ima-ix ref-delta) (set! imaref (get-image (- ima-ix ref-delta)))) (hori_seg::pool_reinit) (pv_region::pool_reinit) (send rle EncodeROIq current-image imaref) (set! region-list0 (compute-regions #t)) ) (define (region-process-display) (send rle toABGR imaf 255 0) (affiche imaf 1) (set! region-list (tri-regs region-list0)) (for-each draw-region (cdr region-list)) (for-each (lambda (x) (draw-region x 0)) (cdr region-list)) ) (define (region-process-step) (region-process-image) (affiche-pos current-image 0 (number->string ima-ix)) (region-process-display)) (region-process-init) (declare-process 'diff region-process-image region-process-display region-process-step) (region-process-init) ;; /home/mars/riff/Imalab/Classes/video/foot1.mpeg