+++ /dev/null
-#########################################################################################\r
-#\r
-# IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.\r
-#\r
-# By downloading, copying, installing or using the software you agree to this license.\r
-# If you do not agree to this license, do not download, install,\r
-# copy or use the software.\r
-#\r
-#\r
-# Intel License Agreement\r
-# For Open Source Computer Vision Library\r
-#\r
-# Copyright (C) 2000, Intel Corporation, all rights reserved.\r
-# Third party copyrights are property of their respective owners.\r
-#\r
-# Redistribution and use in source and binary forms, with or without modification,\r
-# are permitted provided that the following conditions are met:\r
-#\r
-# * Redistribution's of source code must retain the above copyright notice,\r
-# this list of conditions and the following disclaimer.\r
-#\r
-# * Redistribution's in binary form must reproduce the above copyright notice,\r
-# this list of conditions and the following disclaimer in the documentation\r
-# and/or other materials provided with the distribution.\r
-#\r
-# * The name of Intel Corporation may not be used to endorse or promote products\r
-# derived from this software without specific prior written permission.\r
-#\r
-# This software is provided by the copyright holders and contributors "as is" and\r
-# any express or implied warranties, including, but not limited to, the implied\r
-# warranties of merchantability and fitness for a particular purpose are disclaimed.\r
-# In no event shall the Intel Corporation or contributors be liable for any direct,\r
-# indirect, incidental, special, exemplary, or consequential damages\r
-# (including, but not limited to, procurement of substitute goods or services;\r
-# loss of use, data, or profits; or business interruption) however caused\r
-# and on any theory of liability, whether in contract, strict liability,\r
-# or tort (including negligence or otherwise) arising in any way out of\r
-# the use of this software, even if advised of the possibility of such damage.\r
-#\r
-#\r
-\r
-if {$tcl_platform(platform) == "windows"} {\r
- set default_normal_bg SystemButtonFace\r
- set default_normal_fg SystemButtonText\r
- set default_light_bg SystemScrollbar\r
- set default_dark_bg SystemDisabledText\r
- set default_window_bg SystemWindow\r
- set default_window_fg SystemWindowText\r
- set default_select_bg SystemHighlight\r
- set default_select_fg SystemHighlightText\r
-} else {\r
- set default_normal_bg #909090\r
- set default_normal_fg #000000\r
- set default_light_bg #000000\r
- set default_dark_bg #303030\r
- set default_window_bg #909090\r
- set default_window_fg #000000\r
- set default_select_bg #000080\r
- set default_select_fg #ffffff\r
-}\r
-\r
-namespace eval CVLkDemo {\r
- variable mainf\r
- variable tb\r
- variable statustext\r
-\r
- variable nb\r
-\r
- variable showtb 1\r
- variable showstb 1\r
- \r
- variable curcam\r
-\r
- variable curpage\r
- variable curframe\r
- variable curX "---"\r
- variable curY "---"\r
- \r
- variable pagesnum 0\r
- variable pagescount 0\r
- \r
- variable cams {}\r
- variable pages {}\r
-\r
- variable capturestate "0"\r
- variable trackstate "0"\r
- variable nightstate "0"\r
- variable cam "0"\r
-}\r
-\r
-proc CVLkDemo::Modify {} {\r
- set CVLkDemo::cam [.dlg.frame.cb getvalue]\r
-}\r
-\r
-proc CVLkDemo::longmenu {on} {\r
- if {$on} {\r
- .menubar.file entryconfig 1 -state active\r
- } else {\r
- .menubar.file entryconfig 1 -state disabled\r
- }\r
-}\r
-\r
-proc CVLkDemo::longstbar {on} {\r
- if {$on} {\r
- pack $CVLkDemo::mainf.status.indf.f0 -side left -fill y -expand 1 \r
- } else {\r
- pack forget $CVLkDemo::mainf.status.indf.f0 \r
- }\r
-}\r
-\r
-proc CVLkDemo::longbar {on} {\r
- if {$on} {\r
- pack $CVLkDemo::tb.bbox1 -side left -anchor w\r
- pack $CVLkDemo::tb.sep1 -side left -fill y -padx 4 -anchor w\r
- pack $CVLkDemo::tb.bbox2 -side left -anchor w\r
- pack $CVLkDemo::tb.sep2 -side left -fill y -padx 4 -anchor w\r
- } else {\r
- pack forget $CVLkDemo::tb.sep2\r
- pack forget $CVLkDemo::tb.bbox2\r
- pack forget $CVLkDemo::tb.sep1\r
- pack forget $CVLkDemo::tb.bbox1\r
- }\r
-}\r
-\r
-proc CVLkDemo::about {} {\r
- set dlg [Dialog .aboutdlg -parent . -modal local \\r
- -separator 1 \\r
- -title "About CVLkDemo" \\r
- -side right \\r
- -anchor s \\r
- -default 0]\r
- $dlg add -name ok -width 5\r
- \r
- set top [$dlg getframe]\r
- \r
- image create photo original -file [file join $::image_path pictures/CVLkDemo.gif]\r
- canvas $top.c -bd 2 -relief ridge -width 295 -height 195 \r
- $top.c create image 0 0 -anchor nw -image original\r
- pack $top.c -side top -expand yes -fill x\r
-\r
- set frame [frame $top.f -background white -bd 2 -relief ridge]\r
- set lab [label $frame.lab1 -text \\r
- "Program CVLkDemo v. 1.0 \nIntel corporation. 2001 y." \\r
- -background white -font {times 8}]\r
- pack $lab\r
- pack $frame -side top -expand yes -fill x -padx 2 -pady 2\r
-\r
- $dlg draw\r
- destroy $dlg\r
-}\r
-\r
-proc getvar {name value} {\r
- upvar $name localVar\r
- upvar $value lvalue\r
- \r
- set localVar $lvalue\r
-}\r
-\r
-proc CVLkDemo::raisetab { } {\r
- set CVLkDemo::curpage [$CVLkDemo::nb raise]\r
- set CVLkDemo::curframe [$CVLkDemo::nb getframe $CVLkDemo::curpage].lab\r
- set pos [lsearch $CVLkDemo::pages $CVLkDemo::curpage]\r
- set CVLkDemo::curcam [lindex $CVLkDemo::cams $pos] \r
-}\r
-\r
-proc CVLkDemo::createtab {page text} {\r
- set path [$CVLkDemo::nb insert end $page -text $text \\r
- -raisecmd CVLkDemo::raisetab]\r
- \r
- label $path.lab -text "" -bg black -relief sunken\r
- pack $path.lab -side top -expand yes -fill both\r
-\r
- bind $path.lab <ButtonPress-1> {\r
- pButtonPress %x %y\r
- }\r
-\r
- bind $path.lab <ButtonRelease-1> {\r
- pButtonRelease %x %y\r
- }\r
-\r
- bind $path.lab <Motion> {\r
- pMotion %x %y\r
- }\r
-\r
- bind $path.lab <Configure> {\r
- pConfigure\r
- }\r
-}\r
-\r
-proc CVLkDemo::new {} {\r
- \r
- incr CVLkDemo::pagescount\r
- incr CVLkDemo::pagesnum\r
-\r
-\r
- if {$CVLkDemo::pagesnum == 1} {\r
- CVLkDemo::longmenu 1\r
- CVLkDemo::longbar 1\r
- CVLkDemo::longstbar 1\r
-\r
- set CVLkDemo::curpage p[expr $CVLkDemo::pagescount]\r
- lappend CVLkDemo::pages $CVLkDemo::curpage\r
- lappend CVLkDemo::cams $CVLkDemo::curcam\r
-\r
- set text [format "Camera %i" $CVLkDemo::pagescount]\r
- CVLkDemo::createtab $CVLkDemo::curpage $text\r
- \r
- $CVLkDemo::nb see [$CVLkDemo::nb pages end]\r
- $CVLkDemo::nb raise [$CVLkDemo::nb pages end]\r
- update\r
- pInitCamera\r
- } else {\r
- tk_dialog .mes {Message} { CVLkDemo support only one camera.} {} 0 OK" \r
- }\r
-}\r
-\r
-proc CVLkDemo::close {} {\r
-\r
- set pos [lsearch $CVLkDemo::cams $CVLkDemo::curcam]\r
- set $CVLkDemo::cams [lreplace $CVLkDemo::cams $pos $pos]\r
- set $CVLkDemo::pages [lreplace $CVLkDemo::pages $pos $pos]\r
-\r
- $CVLkDemo::nb delete $CVLkDemo::curpage 1\r
- \r
- if {$CVLkDemo::curcam != ""} {\r
- #set ind [$CVLkDemo::tree index $CVLkDemo::curfile]\r
- #$CVLkDemo::tree delete $CVLkDemo::curfile\r
- }\r
-\r
- set CVLkDemo::pagesnum [expr $CVLkDemo::pagesnum - 1]\r
-\r
- if {$CVLkDemo::pagesnum == 0} {\r
- CVLkDemo::longmenu 0\r
- CVLkDemo::longbar 0\r
- #CVLkDemo::longstbar 0\r
- set CVLkDemo::curcam ""\r
- } else {\r
- set page [$CVLkDemo::nb pages end]\r
-\r
- set pos [lsearch $CVLkDemo::pages $CVLkDemo::curpage]\r
- set CVLkDemo::curcam [lindex $CVLkDemo::cams $pos]\r
- \r
- $CVLkDemo::nb see $page\r
- $CVLkDemo::nb raise $page\r
- }\r
- \r
- pCloseCamera\r
- $CVLkDemo::tb.bbox1.b0 configure -relief raised \\r
- -image [Bitmap::get [file join $::image_path pictures/captureoff.gif]]\r
- set CVLkDemo::capturestate 0\r
-}\r
-\r
-proc CVLkDemo::capture {} {\r
-\r
- if { $CVLkDemo::capturestate == 1 } {\r
- $CVLkDemo::tb.bbox1.b0 configure -relief raised \\r
- -image [Bitmap::get [file join $::image_path pictures/captureoff.gif]]\r
- set CVLkDemo::capturestate 0\r
- pStopCamera\r
- $CVLkDemo::tb.bbox1.b1 configure -state disable\r
- } else {\r
- $CVLkDemo::tb.bbox1.b0 configure -relief sunken \\r
- -image [Bitmap::get [file join $::image_path pictures/capture.gif]]\r
- set CVLkDemo::capturestate 1\r
- pStartCamera\r
- $CVLkDemo::tb.bbox1.b1 configure -state active\r
- }\r
-}\r
-\r
-proc CVLkDemo::track {} {\r
-\r
- if { $CVLkDemo::trackstate == 1 } {\r
- $CVLkDemo::tb.bbox1.b1 configure -relief raised \\r
- -image [Bitmap::get [file join $::image_path pictures/trackoff.gif]]\r
- set CVLkDemo::trackstate 0\r
- pResetTrack\r
- $CVLkDemo::tb.bbox1.b2 configure -state disable\r
- } else {\r
- $CVLkDemo::tb.bbox1.b1 configure -relief sunken \\r
- -image [Bitmap::get [file join $::image_path pictures/track.gif]]\r
- set CVLkDemo::trackstate 1\r
- pSetTrack\r
- $CVLkDemo::tb.bbox1.b2 configure -state active\r
- }\r
-}\r
-\r
-proc CVLkDemo::night {} {\r
-\r
- if { $CVLkDemo::nightstate == 1 } {\r
- $CVLkDemo::tb.bbox1.b2 configure -relief raised \\r
- -image [Bitmap::get [file join $::image_path pictures/nightoff.gif]]\r
- set CVLkDemo::nightstate 0\r
- pResetNight\r
- } else {\r
- $CVLkDemo::tb.bbox1.b2 configure -relief sunken \\r
- -image [Bitmap::get [file join $::image_path pictures/night.gif]]\r
- set CVLkDemo::nightstate 1\r
- pSetNight\r
- }\r
-}\r
-\r
-proc CVLkDemo::setvideo {} {\r
- pSetVideo\r
-}\r
-\r
-proc CVLkDemo::camera {} {\r
- pSetCameraOpt\r
-}\r
-\r
-proc CVLkDemo::create { } {\r
- variable prgindic 0\r
- variable prgtext\r
- ## Create intro\r
- ###################################################################\r
- set top [toplevel .intro -relief raised -borderwidth 2]\r
- wm withdraw $top\r
- wm overrideredirect $top 1\r
- \r
- image create photo original -file [file join $::image_path pictures/CVLkDemo.gif]\r
- canvas $top.c -bd 2 -relief ridge -width 295 -height 195 \r
- $top.c create image 0 0 -anchor nw -image original\r
- pack $top.c -side top -expand yes -fill x\r
-\r
- set frame [frame $top.f -background white -bd 2 -relief ridge]\r
- set lab1 [label $frame.lab1 -text "Please wait for loading..." \\r
- -background white -font {times 8}]\r
- set lab2 [label $frame.lab2 -textvariable CVLkDemo::prgtext \\r
- -background white -font {times 8} -width 35]\r
- set prg [ProgressBar $frame.prg -width 50 -height 10 \\r
- -background white -variable CVLkDemo::prgindic -maximum 7]\r
- pack $lab1 $prg $lab2\r
- pack $frame -side top -expand yes -fill x -padx 2 -pady 2\r
-\r
- BWidget::place $top 0 0 center\r
- wm deiconify $top\r
-\r
- ###################################################################\r
- \r
- set CVLkDemo::prgtext "Loading font..."\r
- update\r
- SelectFont::loadfont\r
-\r
- incr CVLkDemo::prgindic\r
- set CVLkDemo::prgtext "Creating menu..."\r
- update\r
-\r
- #### Menu\r
- set menu {\r
- "&File" all file 0 {\r
- {command "&New" {} "New document" {} -command CVLkDemo::new}\r
- {command "&Close" {} "Close the document" {} -state disable \\r
- -command CVLkDemo::close}\r
- {separator}\r
- {command "E&xit" {} "Exit the program" {} -command exit}\r
- }\r
- "&View" all view 0 {\r
- {checkbutton "&Toolbar" {all view} "Show/hide toolbar" {} \\r
- -variable CVLkDemo::showtb \\r
- -command {$CVLkDemo::mainf showtoolbar 0 $CVLkDemo::showtb}\r
- }\r
- {checkbutton "&Statusbar" {all view} "Show/hide statusbar" {} \\r
- -variable CVLkDemo::showstb \\r
- -command {\r
- if {$CVLkDemo::showstb} {\r
- pack $CVLkDemo::mainf.botf -side bottom -fill x \r
- } else {\r
- pack forget $CVLkDemo::mainf.botf\r
- }\r
- }\r
- }\r
- }\r
- "&Options" all options 0 {\r
- {command "Came&ra" {} "Colors & fonts setup" {} -command CVLkDemo::camera}\r
- {command "&Video" {} "Colors & fonts setup" {} -command CVLkDemo::setvideo}\r
- }\r
- "&Help" all help 0 {\r
- {command "&About CVLKDemo" {} "Display the program info" {} \\r
- -command CVLkDemo::about}\r
- }\r
- }\r
-\r
- incr CVLkDemo::prgindic\r
- set CVLkDemo::prgtext "Creating MainFrame..."\r
- update\r
-\r
- set CVLkDemo::mainf [MainFrame .mainf -menu $menu \\r
- -textvariable CVLkDemo::statustext]\r
-\r
- menu .menubar.edit -tearoff 0 -background $::default_normal_bg\r
- MainFrame::_create_entries .mainf .menubar.edit \\r
- $::default_normal_bg {\\r
- {command "Cu&t" {} "Cut the selection" {} -command cut}\r
- {command "&Copy" {} "Copy the selection" {} -command copy}\r
- {command "&Paste" {} "Paste the clipboard" {} -command paste}\r
- {separator}\r
- {command "&Go to.." {} "Move to a specified place" {} -command paste}\r
- }\r
-\r
- incr CVLkDemo::prgindic\r
- set CVLkDemo::prgtext "Creating toolbar..."\r
- update\r
-\r
- #### toolbars creation\r
- set CVLkDemo::tb [$CVLkDemo::mainf addtoolbar]\r
-\r
- set bbox [ButtonBox $CVLkDemo::tb.bbox0 -spacing 0 -padx 1 -pady 1]\r
- $bbox add -image [Bitmap::get [file join $::image_path pictures/new.gif]] \\r
- -highlightthickness 0 -takefocus 0 -relief link -borderwidth 2 \\r
- -padx 1 -pady 1 -helptext "Add new camera" -command CVLkDemo::new\r
- pack $bbox -side left -anchor w\r
- \r
- set sep [Separator $CVLkDemo::tb.sep0 -orient vertical]\r
- pack $sep -side left -fill y -padx 4 -anchor w\r
-\r
- set bbox [ButtonBox $CVLkDemo::tb.bbox1 -spacing 0 -padx 1 -pady 1]\r
- $bbox add -image [Bitmap::get [file join $::image_path pictures/captureoff.gif]] \\r
- -highlightthickness 0 -takefocus 0 -relief raised -borderwidth 2 \\r
- -padx 1 -pady 1 -helptext "Start/Stop capture" -command CVLkDemo::capture\r
- $bbox add -image [Bitmap::get [file join $::image_path pictures/trackoff.gif]] \\r
- -highlightthickness 0 -takefocus 0 -relief raised -borderwidth 2 \\r
- -padx 1 -pady 1 -helptext "Start/Stop tracking" -command CVLkDemo::track\r
- $bbox add -image [Bitmap::get [file join $::image_path pictures/nightoff.gif]] \\r
- -highlightthickness 0 -takefocus 0 -relief raised -borderwidth 2 \\r
- -padx 1 -pady 1 -helptext "Turn On/Off night mode" -command CVLkDemo::night\r
-\r
- set sep [Separator $CVLkDemo::tb.sep1 -orient vertical]\r
-\r
- set bbox [ButtonBox $CVLkDemo::tb.bbox2 -spacing 0 -padx 1 -pady 1]\r
- $bbox add -image [Bitmap::get [file join $::image_path pictures/vidopt.gif]] \\r
- -highlightthickness 0 -takefocus 0 -relief link -borderwidth 1 \\r
- -padx 1 -pady 1 -helptext "Set video format" \\r
- -command CVLkDemo::setvideo \r
-\r
- $bbox add -image [Bitmap::get [file join $::image_path pictures/camopt.gif]] \\r
- -highlightthickness 0 -takefocus 0 -relief link -borderwidth 1 \\r
- -padx 1 -pady 1 -helptext "Camera options"\\r
- -command CVLkDemo::camera \r
-\r
- set sep [Separator $CVLkDemo::tb.sep2 -orient vertical]\r
-\r
- $CVLkDemo::tb.bbox1.b1 configure -state disable\r
- $CVLkDemo::tb.bbox1.b2 configure -state disable\r
- \r
- incr CVLkDemo::prgindic\r
- set CVLkDemo::prgtext "Creating statusbar..."\r
- update\r
-\r
- $CVLkDemo::mainf addindicator\r
- $CVLkDemo::mainf.status.indf.f0 configure -relief flat\r
-\r
- label $CVLkDemo::mainf.status.indf.f0.l0 -relief sunken -borderwidth 1 \\r
- -takefocus 0 -highlightthickness 0 -textvariable CVLkDemo::curcam\r
- pack $CVLkDemo::mainf.status.indf.f0.l0 -side left -fill y -expand 1\r
-\r
- label $CVLkDemo::mainf.status.indf.f0.l1 -relief flat -borderwidth 1 \\r
- -takefocus 0 -highlightthickness 0 -text "X:"\r
- pack $CVLkDemo::mainf.status.indf.f0.l1 -side left -fill y -expand 1\r
-\r
- label $CVLkDemo::mainf.status.indf.f0.l2 -relief sunken -borderwidth 1 \\r
- -takefocus 0 -highlightthickness 0 -textvariable CVLkDemo::curX\r
- pack $CVLkDemo::mainf.status.indf.f0.l2 -side left -fill y -expand 1\r
-\r
- label $CVLkDemo::mainf.status.indf.f0.l3 -relief flat -borderwidth 1 \\r
- -takefocus 0 -highlightthickness 0 -text "Y:"\r
- pack $CVLkDemo::mainf.status.indf.f0.l3 -side left -fill y -expand 1\r
-\r
- label $CVLkDemo::mainf.status.indf.f0.l4 -relief sunken -borderwidth 1 \\r
- -takefocus 0 -highlightthickness 0 -textvariable CVLkDemo::curY\r
- pack $CVLkDemo::mainf.status.indf.f0.l4 -side left -fill y -expand 1\r
- pack forget $CVLkDemo::mainf.status.indf.f0\r
-\r
- set CVLkDemo::prgtext "Creating manadger..."\r
- incr CVLkDemo::prgindic\r
- set CVLkDemo::nb [NoteBook $CVLkDemo::mainf.frame.nb -side top]\r
- pack $CVLkDemo::nb -fill both -expand yes -padx 1 -pady 1\r
- \r
- set CVLkDemo::prgtext "Done"\r
- incr CVLkDemo::prgindic\r
-\r
- pack $CVLkDemo::mainf -fill both -expand yes\r
- update idletasks\r
-\r
- unset CVLkDemo::prgindic\r
- unset CVLkDemo::prgtext\r
-\r
- destroy .intro\r
-}\r
-\r
-proc main {} {\r
- package require BWidget\r
- wm withdraw .\r
- wm title . "CVLKDemo"\r
-\r
- CVLkDemo::create\r
-\r
- BWidget::place . 640 480 center\r
- wm deiconify .\r
- raise .\r
- wm geometry . 640x480\r
-\r
- focus -force .\r
-}\r
-\r
-main\r