BACKGROUND OF THE INVENTION1. Field of the Invention[0001]
The present invention relates to a controller for a photographing apparatus and a photographing system with a high operational characteristic and a high visibility suitable for a photographing operation of the apparatus that is disposed at a remote place and that is used for a monitoring operation, an observing operation, a guiding operation, a presenting operation, and so forth.[0002]
2. Description of the Related Art[0003]
As shown in FIG. 23, when the user controls a photographing apparatus disposed at a remote place, he or she operates a pan tilter in eight directions (up, down, left, right, upper right, lower right, upper left, and lower left directions) with eight-direction keys, a zooming controller, and a wide-angle controller so as to photograph a desired object while observing a photographed[0004]picture6A on amonitor2. In the structure shown in FIG. 23, the user moves acursor7 to one of the direction key's10 with amouse8. Alternatively, after the user has controlled a photographing apparatus disposed at a remote place in the above-described method and registered pan tilter information and zoom information of positions of pictures to be photographed, he or she drives the photographing apparatus at absolute positions corresponding to the registered positions so as to select pictures.
In the conventional controller, a picture that is displayed on the monitor is limited in the range of which the photographing apparatus is moved by the pan tilter. Thus, when the user photographs a desired object, he or she should operate the pan tilter in the full range thereof. Consequently, the user should have skill in operating the pan tilter.[0005]
When the user changes the photographing direction with the conventional direction keys, even if he or she stops pressing the direction keys, since the pan tilter does not immediately stops and thereby he or she may not catch a desired object. When the direction varying speed of the photographing apparatus with the pan tilter is low, although such a problem may be solved, since the response characteristic deteriorates, a high operational characteristic cannot be obtained.[0006]
When the user wants to place a desired object at the center of the angle of view of the photographing apparatus, since he or she controls the photographing direction while observing a picture on the monitor, he or she should determine the photographing direction on trial and error basis. Thus, the user may spend a long time for controlling the photographing apparatus. Moreover, to properly operate the photographing apparatus, the user should have skill.[0007]
When picture and control information is exchanged with a photographing apparatus disposed at a remote place through a low-capacity network, the control information may be lost and/or picture information may be delayed due to an irregularity of their arrival intervals. If the pan tilter or the zooming controller is operated for picture and control information that has been delayed or lost, even if the user causes the pan tilter and the zooming controller to place the object at the desired position, the pan tilter and the zooming controller do not properly operate. Thus, the object is placed at an improper position due to the delay. In addition, depending on the line condition, the arrival intervals of picture information vary. Thus, the user should control the pan tilter and the zooming controller based on a prediction. Consequently, the user cannot properly control the pan tilter and the zooming controller.[0008]
OBJECTS AND SUMMARY OF THE INVENTIONTherefore, an object of the present invention is to provide a controller for a photographing apparatus for allowing the user to designate a desired position or a desired area on a panorama picture displayed as a part or all the moving range of a pan tilter so that the user can easily obtain a desired picture with the photographing apparatus.[0009]
Another object of the present invention is to provide a controller for a photographing apparatus and a photographing system with a high visibility and a high operational characteristic that allow the user to designate a desired position or a desired area on a screen and select an object with the designated position or area and the photographing apparatus to place the selected object at the center of the screen.[0010]
A first aspect of the present invention is a controller for a photographing apparatus having a photographing portion with driving means that allows the photographing direction of photographing means to be varied, comprising a displaying means for displaying a panorama picture generated with a picture photographed by the photographing means, and a controlling means for referencing the panorama picture and varying the photographing direction of the photographing means.[0011]
A second aspect of the present invention is a controller for a photographing apparatus having a photographing portion with driving means that allows the photographing direction of photographing means to be varied, the controller comprising an operation area in which a panorama picture generated with a picture photographed by the photographing means is displayed, and a picture selecting means for allowing the user to designate a desired point in the operation area, selecting an object photographed by the photographing means corresponding to the designated point, and moving the selected object to desired positional coordinates of the driving means.[0012]
A third aspect of the present invention is a controller for a photographing apparatus having a photographing portion with driving means that allows the photographing direction of photographing means to be varied, the controller comprising an operation area in which a panorama picture generated with a picture photographed by the photographing means is displayed, and a picture selecting means for allowing the user to designate a desired area in the operation area, selecting an object photographed by the photographing means corresponding to the designated area, and moving an object at the position corresponding to a desired point generated with the desired area to desired positional coordinates of the driving means.[0013]
A fourth aspect of the present invention is a photographing system having a photographing portion with driving means that allows the photographing direction of photographing means to be varied and a controller for a photographing apparatus, the controller controlling the photographing portion, wherein the controller comprises an operation area in which a panorama picture generated with a picture photographed by the photographing means is displayed, and a picture selecting means for selecting an object photographed by the photographing means in the operation area and moving the selected object to desired positional coordinates of the driving means.[0014]
A picture photographed by a pan tilter camera that is disposed at a remote place and that can be moved in various directions is sent to a computer. The picture is displayed as a panorama picture in a display area of a monitor. The direction of a picture selecting means corresponding to the direction of an object to be placed at the center of the angle of view of the photographing apparatus in the panorama picture is designated by a pointing device connected to the computer. Since the pan tilter is controlled with reference to the panorama picture, a desired picture can be photographed by the photographing apparatus.[0015]
In addition, the environment of the place at which the pan tilter camera is disposed is displayed as a panorama picture in the panorama operation area of the monitor of the computer. A desired point to be placed at the center of the angle of view of the photographing apparatus in a picture of the panorama operation area or a desired point generated with a desired area is designated by the pointing device connected to the computer. Thus, in the method of which the result is input, a selected object can be easily placed at the center of the screen. In addition, since a desired point in the operation area on the screen or a desired point generated with a desired area is designated with the pointing device, the user can easily know the driving direction of the pan tilter camera. In addition to the panorama operation area, another operation area for a picture may be displayed.[0016]
These and other objects, features and advantages of the present invention will become more apparent in light of the following detailed description of a best mode embodiment thereof, as illustrated in the accompanying drawings.[0017]
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is an external view for explaining a system according to an embodiment of the present invention;[0018]
FIG. 2 is a schematic diagram for explaining a screen of a monitor according to the embodiment of the present invention;[0019]
FIG. 3 is a block diagram showing the structure of the system according to the embodiment of the present invention;[0020]
FIGS. 4A to[0021]4F are schematic diagrams for explaining a method for generating a panorama picture according to the embodiment of the present invention;
FIGS. 5A to[0022]5D are schematic diagrams for explaining a method for generating a panorama picture according to the embodiment of the present invention;
FIGS. 6A to[0023]6C are schematic diagrams for explaining a method for generating a panorama picture according to the embodiment of the present invention;
FIGS. 7A and 7B are schematic diagrams for explaining a method for generating angular information of a pan tilter camera with positional coordinates in a panorama operation area according to the embodiment of the present invention;[0024]
FIGS. 8A and 8B are schematic diagrams for explaining a plane—spherical surface converting method according to the embodiment of the present invention;[0025]
FIGS. 9A and 9B are schematic diagrams for explaining a coordinate converting method in the operation area according to the embodiment of the present invention;[0026]
FIGS. 10A to[0027]10C are schematic diagrams for explaining a coordinate converting method in the panorama operation area according to the embodiment of the present invention;
FIGS. 11A and 11B are schematic diagrams for explaining positional information and angular information of a pan tilter camera according to the embodiment of the present invention;[0028]
FIGS. 12A and 12B are schematic diagrams for explaining angular coordinates of the pan tilter camera and positional coordinates in the panorama operation area according to the embodiment of the present invention;[0029]
FIGS. 13A to[0030]13D are schematic diagrams for explaining the angle of view of the pan tilter camera and a frame in the panorama operation area according to the embodiment of the present invention;
FIG. 14 is a graph for explaining a conversion method of zoom data and magnification data according to the embodiment of the present invention;[0031]
FIG. 15 is a flow chart showing an example of the overall process according to the embodiment of the present invention;[0032]
FIGS. 16A and 16B are flow charts showing an example of the process of a timer event according to the embodiment of the present invention;[0033]
FIG. 17 is a flow chart showing an example of the process of a mouse moving event according to the embodiment of the present invention;[0034]
FIG. 18 is a flow chart showing an example of the process of a mouse button down event according to the embodiment of the present invention;[0035]
FIG. 19 is a flow chart showing another example of the process of a mouse button down event according to the embodiment of the present invention;[0036]
FIG. 20 is a flow chart showing an example of the process of a mouse up/down event according to the embodiment of the present invention;[0037]
FIG. 21 is a schematic diagram showing the structure of a system according to a second embodiment of the present invention;[0038]
FIG. 22 is a block diagram showing the structure of the system according to the second embodiment of the present invention; and[0039]
FIG. 23 is a schematic diagram for explaining a controller for a photographing apparatus.[0040]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTSNext, with reference to the accompanying drawings, embodiments of the present invention will be described. FIG. 1 shows an outline of the structure of a system according to a first embodiment of the present invention. A[0041]monitor2 and amouse8 are connected to acomputer1. Thecomputer1 controls the driving operation of apan tiler camera3 disposed at a remote place. In other words, a controller for the photographing apparatus is composed of thecomputer1.
The[0042]pan tilter camera3 is integrally composed of a pan tilter portion and a camera portion. In FIG. 1, thepan tilter camera3 is disposed on a real scene as denoted by4. A screen of a picture photographed by thepan tilter camera3 is denoted by5. This screen is hereinafter referred to as a photographed screen. The photographedscreen5 is an actually photographed screen. When a zoom lens of thepan tilter camera3 is placed on the telephotograph side, the angle of view decreases. In contrast, when the zoom lens of thepan tilter camera3 is placed on the wide-angle side, the angle of view increases.
A picture on a photographed[0043]screen5 captured by apan tilter camera3 is sent to acomputer1 through a video cable or the like. The picture data sent to thecomputer1 is decoded and displayed on amonitor2. Themonitor2 displays the photographedscreen5 in anoperation area6A on themonitor2. A panorama picture including the picture photographed by thepan tilter camera3 is displayed in apanorama operation area6B. An arrow-shapedcursor7 is displayed at the position of a mouse pointer of amouse8 in theoperation area6A or thepanorama display area6B. The user designates a desired point or a desired area in theoperation area6A or thepanorama operation area6B with themouse8 so as to operate thepan tilter camera3. In thepanorama operation area6B, aframe6C that represents the current position and the angle of view of the pan tilter and apan tilter limiter6D are superimposed to the panorama picture. Thepan tilter limiter6D represents the moving range of the pan tilter camera. In addition, when necessary, apanorama generation button6E is displayed on themonitor2.
As shown in FIG. 2, the[0044]operation area6A and thepanorama operation area6B are displayed on themonitor2. With themouse8, the user can move thecursor7 and designate a desired point or a desired point generated with a desired area in theoperation area6A or thepanorama operation area6B. The user operates the pan tiler so that an object corresponding to the designated point is placed at the center of theoperation area6A. In other words, when the user inputs a result to be displayed, an object selected corresponding to the input data is displayed at the center of theoperation area6A.
FIG. 3 is a block diagram showing the overall system according to the embodiment of the present invention. The system shown in FIG. 3 comprises a[0045]camera portion11, apan tilter portion12, aTV monitor13, acomputer1, a pointing device14 (such as a mouse8), and amonitor2. Thepan tilter camera3 comprises acamera portion11 and apan tilter portion12. For example, thecamera portion11 is disposed on thepan tilter portion12. Thecamera portion11 comprises alens block portion15, azoom lens16, azoom portion17, azoom lens motor18, a solid stateimage pickup device19, a signal separating/automatic gain adjusting circuit (SH/AGC)20, an A/D converter21, and asignal processing circuit22. Thecamera portion11 represents a video camera.
The[0046]pan tilter portion12 comprises amode controller23, acamera controller24, apan tilter controller25, apan motor26, atilt motor27, and apan tilter28. Thecomputer1 comprises a controllingportion31, avideo capture portion29, and a storingportion30. Thevideo capture portion29 is composed of a video capture board.
Rays emitted from an object are focused to the solid state[0047]image pickup device19 through a lens set and a diaphragm of thelens block portion15. An example of the solid stateimage pickup device19 is a CCD (Charge Coupled Device). The focused rays (field picture) are converted into a picture signal and then sent to the signal separating/automaticgain adjusting circuit20. The signal separating/automaticgain adjusting circuit20 samples/holds the picture signal and controls the gain of the picture signal with a control signal of an auto iris (AE). The resultant picture signal is sent to thesignal processing circuit22 through the A/D converter21. Thesignal processing circuit22 converts the received picture signal into a brightness signal (Y), a color signal (C), and a video signal and sends these signals as picture signals to theTV monitor13 and thevideo capture portion29 of thecomputer1.
The[0048]lens block portion15 of thecamera portion11 drives thezoom lens16 and thereby varies the angle of view of an object to be photographed. Thelens block portion15 causes thezoom lens motor18 that is for example a stepping motor to rotate, thereby driving thezoom lens16 corresponding to a drive command received from thecamera controller24 of thepan tilter portion12. Thecamera controller24 performs a lens controlling operation (for example, focusing operation and zooming operation), an exposure controlling operation (for example, diaphragm controlling operation, gain controlling operation, and speed controlling operation of electronic shutter), white balance controlling operation, a picture quality controlling operation, and so forth of thecamera portion11. In addition, thecamera controller24 interfaces with themode controller23. As interface controlling operations with respect to the zoom lens16., thecamera controller24 sends a control signal to the motor driver corresponding to a drive command of thezoom lens16 received from themode controller23 so that thezoom lens16 is placed at the position designated by the command. In addition, thecamera controllers24 always sends positional information of thezoom lens16 to themode controller23.
The[0049]camera portion11 is disposed on thepan tilter portion12 that has a degree of freedom that are rotating directions of two axes of pan and tilt. Thepan tilter portion12 causes thepan motor26 and thetilt motor27 to rotate corresponding to a drive command received from thepan tilter controller25, thereby driving a pan head and a tilt head of thepan tilter28. Themotors26 and27 are composed of for example stepping motors. Thepan tilter controller25 sends a control signal to the motor drivers so that the pan head and the tilt head are driven to positions corresponding to a pan drive command and a tilt drive command received frommode controller23. In addition, thepan tilter controller25 always sends positional information of the pan head and the tilt head to themode controller23.
The[0050]mode controller23 controls the overall system corresponding to the internal states of thecamera portion11 and thepan tilter portion12 and the interface information received from the outside of thepan tilter camera3 as will be described later. Themode controller23 is connected with for example thecomputer1 and RS-232C interface. Themode controller23 sends drive commands received from thecomputer1 to thepan tilter controller25 and thecamera controller24 so as to drive thepan tilter28 and thezoom lens16 of thelens block portion15. In addition, themode controller23 sends current positional information received from thepan tilter controller25 and thecamera controller24 to thecomputer1.
According to the embodiment, the[0051]computer1 is used to select a picture photographed by thepan tilter camera3. Thecomputer1 processes graphics in theoperation area6A and thepanorama operation area6B displayed on themonitor2 and information of a designated position and a clicking operation of the pointing device14 (mouse8) and sends the resultant data to themode controller23. To display a picture photographed by acamera portion11 on themonitor2, avideo capturing portion29 is used. Thevideo capturing portion29 allows a video signal received from thecamera portion11 to be displayed on themonitor2 with a desired picture quality. In addition, thevideo capturing portion29 allows a picture to be captured in a particular picture format (for example, bit map format, still picture JPEG format, moving picture JPEG format, or the like) with a particular picture quality and to be stored in the, storing portion30 (for example, a hard disk) of thecomputer1.
Next, with reference to FIG. 4, an example of a method for generating a panorama picture displayed in the[0052]panorama operation area6B will be described. It should be noted that according to the present invention, a panorama picture may be generated by another method. When thepanorama generation button6E is pressed, a panorama picture is generated.
Now, it is assumed that the environment in the place where the[0053]pan tilter camera3 is disposed is a spherical surface. The spherical surface is referred to as virtual spherical surface. In FIGS. 4A to4F, two adjacent pictures on the virtual spherical surface are combined to one panorama picture. To generate a panorama picture, as shown in FIG. 4A, thepan tilter camera3 disposed at the center of the sphere photographs two adjacent pictures on the virtual spherical surface. Thepan tilter camera3 photographs a plane perpendicular to the optical axis of the lens thereof. FIG. 4D shows a situation of which two adjacent pictures on the virtual spherical surface are photographed by thepan tilter camera3 and the two pictures are mapped to the plane perpendicular to the optical axis. When two adjacent pictures are simply combined, they overlap and distort at the overlapped portion.
To prevent two adjacent pictures from overlapping and distorting, they are mapped to the virtual spherical surface as shown in FIG. 4B. FIG. 4E shows a situation of which two photographed pictures that are planes perpendicular to the optical axis are mapped to the virtual spherical surface. In such a manner, planes perpendicular to the optical axis (namely, photographed pictures) are mapped to the virtual spherical surface. The mapped pictures are combined in such a manner that an overlapped portion and an unnecessary portion are removed. The picture mapped on the virtual spherical surface is normalized with longitude and latitude. Thus, a panorama picture as shown in FIGS. 4C and 4D is generated.[0054]
Next, a method for generating a panorama picture will be described. In this method, as shown in FIGS. 5A to[0055]5D, one panorama picture is generated by combining10 pictures. First, the pan tilter camera3 (not shown) disposed at the center of the sphere photographs10 pictures. At this point, as shown in FIG. 5A, by matching the optical axis of the lens of thepan tilter camera3 to positions denoted by circles, thepan tilter camera3 can obtainpictures1 to10. As shown in FIG. 5B, the pictures photographed by thepan tilter camera3 are pictures on the plane perpendicular to the optical axis of the lens. The obtained pictures are mapped to the virtual spherical surface. Thereafter, as shown in FIG. 5C, the pictures are normalized with latitude and longitude. The pictures are obtained in such a manner that they are smoothly combined without a break. Thereafter, an overlapped portion and unnecessary portion are removed. Thus, a panorama picture of which 10 picture are smoothly combined is generated.
Next, with reference to FIG. 6, another method for generating a panorama picture will be described. In this method, pixels obtained by the[0056]pan tilter camera3 are designated to pixels of a panorama picture normalized with latitude and longitude (namely, coordinates (s, t)). As in the method shown in FIGS. 5A to5D, when pixels of pictures photographed by thepan tilter camera3 are designated to pixels of a panorama picture, part of pixels of the panorama picture may not be designated. All pixels of pictures photographed by thepan tilter camera3 should be designated to pixels of the panorama picture. The panorama picture is composed of pixels calculated for individual coordinate points in the following process. Angular coordinates (α, β) (see FIG. 6B) on the virtual spherical surface corresponding to coordinates (s, t) (see FIG. 6) of a panorama picture are calculated corresponding to Eq. (1).
(α,β)=(a(s),b(t)) (1)
(Eq. (1) will be described later with reference to FIGS. 7A and 7B.)[0057]
As shown in FIG. 6C, coordinate data (ξ, η) of the obtained picture is calculated with the coordinates (s, t), the angular coordinates (θ, φ) of a[0058]pan tilter28, and photographing magnification assuming that the wide edge of the photographing apparatus is defined as one magnification corresponding to Eq. (2).
(ξ, η)=(f(α, β, θ, γ), g(α, β, θ, φ, γ)) (2)
(Eq. (2) will be described later with reference to FIGS. 8A and 8B.)[0059]
Corresponding to the above-described equations, pixels of the panorama picture are correlated with obtained pictures so as to generate a combined picture (namely, the panorama picture).[0060]
Next, with reference to FIGS. 7A and 7B, a method for converting coordinates (s, t) of a panorama picture into angular coordinates (α, β) on the virtual spherical surface will be described. In FIG. 7A, PragMin represents angular data at the left edge assuming that the home position of the pan tilter[0061]28 (for example, the center in the moving range of the pan tilter28) is 0 (rag). PragMax represents angular data at the right edge assuming that the home position of thepan tilter28 is 0 (reg). Ny2represents a horizontal coordinate of thepanorama operation area6B. −Ny2/2 represents coordinate data at the right edge of thepanorama operation area6B.
To obtain the pan angle α with the coordinate data s, since the following relation is satisfied[0062]
(PragMax−α): (PragMax−PragMin)=(Ny2/2−s):Ny2
the pan angle α is expressed as follows.[0063]
α=PragMax−(PragMax−PragMin)×(Ny2/2−s)/Ny2
In FIG. 7B, TragMin represents angular data at the upper edge assuming that the home position of the[0064]pan tilter28 is 0 (rag). TragMax represents angular data at the lower edge assuming that the home position of thepan tilter28 is 0 (rag). Nz2represents a vertical coordinate of thepanorama operation area6B. −Nz2/2 represents coordinate data at the upper edge of thepanorama operation arae6B. Nz2/2 represents coordinate data at the lower edge of thepanorama operation area6B.
To obtain the tilt angle β with the coordinate data t, since the following relation is satisfied,[0065]
(TragMax−β): (TragMax−TragMin)=(Nz2/2−t):Nz2
the tilt angle β is expressed as follows.[0066]
β=TragMax−(TragMax−TragMin)×(Nz2/2−t)/Nz2
Next, with reference to FIGS. 8A and 8B, the method for converting a plane into a spherical surface will be described. As shown in FIG. 8A, the spatial coordinates of a point (ξ, η) of a photographed picture orienting the home position (the origin of latitude and longitude) are expressed as follows.
[0067]At this point, the following relations are satisfied.[0068]
k1=tan(λ/2γ)/(Ny/2)
k2=tan(μ/2r)/(Nz/2)
where (Ny, Nz) represent the drive ranges (y direction and z direction) of the mouse pointer of the pointing device[0069]14 (mouse8); (λ, μ) represents the horizontal angle of view and vertical angle of view at the wide edge; and y represents the current zoom relative magnification (magnification information) assuming that the wide edge is one time (×1).
In addition, as shown in FIG. 8B, a three-dimensional rotation matrix is generally expressed as follows.
[0070]Since the direction of one point (ξ, η) of a photographed picture that is panned and tilted by angular information (θ, φ) from the home position is the same as the direction of one point (α, β) apart from the home position, the following relation is satisfied.[0071]
Rz(θ)Ry(φ)p=1Rz(α)Ry(β)ex
When the formula is solved with respect to p, the following relation is satisfied.
[0072]Thus, ξ and η are obtained as follows.[0073]
1=1/a
ξ=−1b/k1=−b/k1a
η=1c/k2=c/k2a
With the above formula, (ξ, η) projected to the photograph coordinates can be obtained with coordinate data with an angle (α, β) from the home position.[0074]
ξ=(−sin(α−θ)cos β)/(k1(cos(α−θ) cos φ cos β+sin φ sin β))
η=(−cos(α−θ)sin φ cos β+cos φ sin β)/(k2(cos(α−θ)cos φ cos β+sin φ sin β))
Coordinate data (ξ, η) on the obtained picture by the[0075]pan tilter camera3 can be obtained from angular coordinates (α, β) on the virtual spherical surface corresponding to coordinate (s, t) of a panorama picture. Thus, a panorame picture can be generated.
In contrast, coordinate data with an angle (α, β) can be obtained with (ξ, η) projected to photograph coordinates corresponding to the following formula.[0076]
Since 1=|p|
a=1/{square root}(1+k12ξ2+k22η2)
b=−k1ξ/{square root}(1+k12ξ2+k22η2)
c=k2η/{square root}(1+k12ξ2+k22η2)
where {square root}( ) represents that the square root of the calculated result in ( ) is obtained.[0077]
Form Formula (3), the following relations are satisfied.[0078]
a=cos(α−θ)cos φ cos β+sin φ sin β
b=sin(α−θ)cos β
c=−cos(α−θ)sin φ cos β+cos φ sin β
Thus, the following relations are satisfied.[0079]
asin φ+csin θ=sin β
tan(α−θ)=b/(acos φ−csin θ)
Thus, the following relations are satisfied.[0080]
β=sin−1(sin φ/{square root}(1+k12ξ2+k22η2)+sin θk2η/{square root}(1+k12ξ2+k22η2)
α=tan−1(−k1ξ/(cos φ−k2η sin θ))+θ
Thus, the pan angle α and the tilt angle β can be obtained as follows.[0081]
(α,β)=(f(ξ, η, θ, φ, γ), g(ξ, η, θ, φ, γ)) (4)
If an error is permitted to some extent, (α, β) can be expressed as follows.[0082]
α=θ+(λ/γ)×(ξ/Ny)
β=φ+(μ/γ)×(η/Nz)
In other words, Eq. (4) can be simplified as follows.[0083]
(α, β)=(f(ξ, θ, γ), g(η, φ, γ)) (5)
Next, with reference to FIG. 9, a method for calculating angular information (α, β) of the[0084]pan tilter28 expressed by Eq. (4) and Eq. (5) with positional coordinates (ξ, η) of theoperation area6A will be described. First of all, an example of a method for directly designating a desired point in theoperation area6A will be described. Assuming that the center of theoperation area6A is defined as (0, 0) of relative coordinates as shown in FIG. 9A, the positional coordinates (ξ, η) of the mouse pointer of themouse8 in theoperation area6A are obtained.
Next, another method for designating a desired point generated with a desired area in the[0085]operation area6A will be described. As shown in FIG. 9A, after a start point (m1, n1) in a desired area is designated, an end point (m2, n2) in the desired area is designated. As the coordinates at the center of the rectangle generated with these two points, a desired point (ξ, η) is obtained as Eq. (6).
(ξ,η)=((m1,n1)+(m2,n2))/2 (6)
FIG. 9A shows coordinates of the mouse[0086]8 (pointing device14) in theoperation area6A. In FIG. 9A, the moving range (y direction and z direction) of the mouse pointer of themouse8 in theoperation area6A is denoted by (Ny1, Nz1). Angular coordinates (α, β) of thepan filter28 are obtained with positional coordinates (ξ, η) of the desired point (at the mouse pointer of the mouse8), angular information (θ, φ) that represents the orientation of thepan tilter28, and magnification information (γ) of the current zoom relative magnification assuming that the wide edge of thezoom lens16 is defined as one magnification corresponding to Eq. (4) or Eq. (5).
The angular coordinates (α, β) shown in FIG. 9B are used to place a position designated by the pointing device to the center of the photographed screen assuming that the home position of the[0087]pan tilter28 is defined as the origin of latitude and longitude.
The coordinates obtained in FIGS. 9A and 9B may be absolute coordinates of the screen of the[0088]monitor2 or relative coordinates assuming that the center of theoperation area6A is defined as (0, 0). In the coordinates shown in FIGS. 9A and 9B, coordinates in the pan direction are represented by ξ, m1, m2, θ, and a and coordinates in the tilt direction are represented by η, n1, n2, φ, and β.
Thus, when the mouse pointer of the[0089]mouse8 is present in theoperation area6A, the angular information (α, β) of thepan tilter28 is calculated with the angular information (θ, φ) of thecurrent pan tilter28 obtained with received data, the zoom magnification information (γ), and the positional information (ξ, η) at the mouse pointer of themouse8 corresponding to Eq. (4) or Eq. (5) so that the designated object is placed at the center of theoperation area6A. The angular coordinates (α, β) of thepan tilter28 are converted into internal positional information (PNew, TNew) as shown in FIGS. 11A and 11B. The resultant internal positional information (PNew, TNew) is stored in a send buffer along with an absolute position drive command of thepan tilter28. In addition, as will be described later, a data send request flag (FlagSo) is set so that data is sent upon occurrence of a timer event.
Next, with reference to FIGS. 10A, 10B, and[0090]10C, a method for converting positional coordinates (ξ, η) of the mouse pointer of themouse8 in thepanorama operation area6B of the panorama picture into angular coordinates (α, β) corresponding to the present invention will be described. As with the method for directly designating a desired point in theoperation area6A, as shown in FIG. 10A, with a method for directly designating a desired point in thepanorama operation area6B, positional coordinates (ξ, η) at the mouse pointer of themouse8 can be obtained.
Next, another method for designating a desired point generated with a desired area in the[0091]panorama operation area6B will be described. As shown in FIG. 10A, after a start point (m1, n1) of a desired area is designated, the end point (m2, n2) of the desired area are designated. Corresponding to Eq. (6), a desired point (ξ, η) is obtained.
In FIG. 10A, the moving range (y direction and z direction) of the mouse pointer of the[0092]mouse8 in thepanorama operation area6B (the moving range is defined as the coordinates of the mouse pointer of the mouse8 (pointing device14) in thepanorama operation area6B) is represented by (Ny2, Nz2). The moving range is limited by thepan tilter limiter6D denoted by dotted lines in thepanorama operation area6B. Thepan tilter limiter6D represents the moving range of the optical axis of the lens of thepan tilter camera3. In other words, a point cannot be designated out of thepan tilter limiter6D. Positional coordinates (x,
y) in the[0093]panorama operation area6B, angle-of-view information (s, t), and angular information (α, β) of thepan tilter28 can be obtained with the positional coordinates (ξ, η) of the desired point, the angular information (θ, φ) representing the orientation of thepan tilter28, and the magnification information (γ) as the current zoom relative magnification assuming that the wide edge of thezoom lens16 is defined as one magnification corresponding to Eq. (7), Eq. (8), and Eq. (9).
(x,y)=(f0(θ),g0(f)) (7)
(s,t)=(f1(γ)g1(γ)) (8)
(α,β)=(f(ξ),g(η)) (9)
In FIG. 10B, positional coordinates (x, y) represent the current orientation of the[0094]pan tilter28 assuming that the home position of thepan tilter28 is defined as the origin of latitude and longitude. Angle-of-view information (s, t) is the current angle of view in theoperation area6A. FIG. 10B represents the states of the zoom lens and the pan tilter in thepanorama operation area6B.
In FIG. 10C, angular coordinates (α, β) are used to place the position designated by the pointing device to the center of the photographed screen assuming that the home position of the[0095]pan tilter28 is defined as the origin of latitude and longitude. (PragMax, TragMax) and (PragMin, TragMin) represent the moving range of the pan tilter (namely, the range represented by thepan tilter limiter6D). FIG. 10C shows a drive target value in the pan tilter moving range.
In FIGS. 10A, 10B, and[0096]10C, coordinates to be obtained may be absolute coordinates on the screen of themonitor2 or relative coordinates assuming that the center of thepanorama operation area6B is defined as (0, 0). In the coordinates, coordinates in the pan direction are represented by ξ, m1, m2, x, s, and α and coordinates in the tilt direction are represented by η, n1, n2, y, t, and β.
Thus, when the mouse pointer of the[0097]mouse8 is present in thepanorama operation area6B, angular information (α, β) of thepan tilter28 is calculated with positional information (ξ, η) at the mouse pointer of themouse8 corresponding to Eq. (9) so that the designated object in theoperation area6A is placed at the center of theoperation area6A. Angular coordinates (α, β) of thepan tilter28 are converted into internal positional-information (PNew, TNew) of thepan tilter28 corresponding to the method shown in FIGS. 11A and 11B. The internal positional information (PNew, TNew) of thepan tilter28 is stored in a send buffer along with an absolute position drive command of thepan tilter28. In addition, as will be described later, a data send request flag (FlagSo) is set so that data is sent upon occurrence of the timer event.
Next, a method for converting internal positional information (p, t) of the[0098]pan tilter28 into angular information (α, β) and a method for converting angular coordinates (α, β) into internal positional information (PNew, TNew) of thepan tilter28 will be described with reference to FIGS. 11A and 11B. In FIG. 11A, PragMin represents angular data at the left edge assuming that the home position of thepan tilter28 is 0 (reg). PragMax represents angular data at the right edge assuming that the home position of thepan tilter28 is 0 (rag). PdatMin represents internal count data at the left edge of thepan tilter controller25. PdatMax represents internal counter data at the right edge of thepan tilter controller25.
To obtain the pan angle θ with the pan data p, since the following relation is satisfied,[0099]
(PragMax−θ): (PragMax−PragMin)=(PdatMax−p): (PdatMax−PdatMin)
the pan angle e is expressed as follows.[0100]
θ=PragMax−(PragMax−PragMin)×(PdatMax−p)/(PdatMax−PdatMin)
Thus, the pan data p is expressed as follows.[0101]
p=PdatMax−(PragMax−θ)×(PdatMax−PdatMin)/(PragMax−PragMin)
In addition, to obtain the pan data PNew with the pan angle α, since the following relation is satisfied,[0102]
(PragMax−α): (PragMax−PragMin)=(PdatMax−p-new): (PdatMax−PdatMin)
the pan data PNew is expressed as follows.[0103]
PNew=PragMax−(PragMax−α)×(PdatMax−PdatMin)/(PragMax−PragMin)
In FIG. 11B, TragMin represents angular data at the upper edge assuming that the home position of the[0104]pan tilter28 is 0 (rag). TragMax represents angular data at the lower edge assuming that the home position of thepan tiler28 is 0 (rag). TdatMin represents internal
count data at the upper edge of the[0105]pan tilter controller25. TdatMax represents internal count data at the lower edge of thepan tilter controller25.
To obtain the tilt angle φ with the tilt data t, since the following relation is satisfied,[0106]
(TragMax−φ): (TragMax−TragMin)=(TratMax−t): (TdatMax−TdatMin)
the tilt angle φ is expressed as follows.[0107]
φ=TragMax−(TragMax−TragMin)×(TdatMax−t)/(TdatMax−TdatMin)
Thus, the tilt data t is expressed as follows.[0108]
t=TdatMax−(TragMax−φ)×(TdatMax−TdatMin)/(TragMax−TragMin)
To obtain the tilt data TNew with the tilt angle β, since the following relation is satisfied,[0109]
(TragMax−β): (TragMax−TragMin)=(TdatMax−t-new): (TdatMax−TdatMin)
the tilt data TNew is expressed as follows.[0110]
TNew=TragMax−(TragMax−β)×(TdatMax−TdatMin)/(TragMax−TragMin)
Next, with reference to FIGS. 12A and 12B, a method for converting positional coordinates (ξ, η) in the[0111]panorama operation area6B into angular coordinates (α, β) of thepan tilter28 and a method for converting angular information (θ, φ) of thepan tilter28 into positional coordinates (x, y) in thepanorama operation area6B will be described. In FIG. 12A, PragMin represents angular data at the left edge assuming that the home position of thepan tilter28 is 0 (rag). PragMax represents angular data at the right edge assuming that the home position of thepan tilter28 is 0 (rag). Ny2represents a horizontal coordinate of thepanorama operation area6B. −Ny2/2 represents coordinate data at the left edge of thepanorama operation area6B. Ny2/2 represents coordinate data at the right edge of thepanorama operation area6B.
To obtain the pan angle α with the coordinate data ξ, since the following relation is satisfied,[0112]
(PragMax−α): (PragMax−PragMin)=(Ny2/2−ξ):Ny2
the pan angle α is expressed as follows.[0113]
α=PragMax−(PragMax−PragMin)×(Ny2/2−ξ)/Ny2
To obtain the coordinate data x with the pan angle θ, since the following relation is satisfied,[0114]
(PragMax−θ): (PragMax−PragMin)=(Ny2/2−x):Ny2
the coordinate data x is expressed as follows.[0115]
x=Ny2/2−(PragMax−θ)×Ny2/(PragMax−PragMin)
In FIG. 12B, TragMin represents angular data at the upper edge assuming that the home position of the[0116]pan tilter28 is 0 (rag). TragMax represents angular data at the lower edge assuming that the home position of thepan tilter28 is 0 (rag). Nz2represents a vertical coordinate of thepanorama operation area6B. −Nz2/2 represents coordinate data at the upper edge of thepanorama operation area6B. Nz2/2 represents coordinate data at the lower edge of thepanorama operation area6B.
To obtain the tilt angle β with the coordinate data n, since the following relation is satisfied,[0117]
(TragMax−β): (TragMax−TragMin)=(Nz2/2−η):Nz2
the tilt angle β is expressed as follows.[0118]
β=TragMax−(TragMax−TragMin)×(Nz2/2−η)/Nz2
To obtain the coordinate data y with the tilt angle φ, since the following relation is satisfied,[0119]
(TragMax−φ): (TragMax−TragMin)=(Nz2/2−y):Nz2
the coordinate data y is expressed as follows.[0120]
y=Nz2/2−(TragMax−θ)×Nz2/(TragMax−TragMin)
Next, with reference to FIGS. 13A to[0121]13D, a method for converting angle-of-view information (ψ, ω) captured by thepan tilter28 into angle-of-view information (θ, t) of theframe6C in thepanorama operation area6B will be described. FIG. 13A shows the current angle-of-view information (ψ, ω) of thepan tilter28. The angle-of-view information (ψ, ω) is expressed as follows.
(ψ,ω)=1/γ×(ψ0,ω0)
At this point, (ψ0, ω0) represent the horizontal angle of view and the vertical angle of view at the wide edge. λ represents the magnification of the lens assuming that the wide edge is defined as one magnification.[0122]
As shown in FIG. 13B, PragMin represents angular data at the left edge assuming that the home position of the[0123]pan tilter28 is 0 (rag). PragMax represents angular data at the right edge assuming that the home position of thepan tilter28 is 0 (rag). Ny2represents a horizontal coordinate of thepanorama operation area6B. −Ny2/2 represents coordinate data at the left edge of thepanorama operation area6B. Ny2/2 represents coordinate data at the right edge of thepanorama operation area6B.
To obtain the horizontal angle of view s with the horizontal angle of view ψ, since the following relation is satisfied,[0124]
ψ: (PragMax−PragMin)=s: Ny2
horizontal angle of view s is expressed as follows.[0125]
s=ψ×Ny2/(PragMax−PragMin)
In FIG. 13C, TragMin represents angular data at the lower edge assuming that the home position of the[0126]pan tilter28 is 0 (rag). TragMax represents angular data at the upper edge assuming that the home position of thepan tilter28 is 0 (rag). Nz2represents a vertical coordinate of thepanorama operation area6B. −Nz2/2 represents coordinate data at the lower edge of thepanorama operation area6B. Nz2/2 represents coordinate data at the upper edge of thepanorama operation area6B.
To obtain the vertical angle of view t with the vertical angle of view ω, since the following relation is satisfied,[0127]
ω: (TragMax−TragMin)=t: Nz2
the vertical angle of view t is expressed as follows.[0128]
t=ω×Nz2/(TragMax−TragMin)
Thus, the angle-of-view information (s, t) shown in FIG. 13D is displayed as the[0129]frame6C in thepanorama operation area6B.
Next, with reference to FIG. 14, a method for converting the positional information (z) of the[0130]zoom lens16 into magnification information (γ) will be described. In FIG. 14, the vertical axis represents information of lens magnification, whereas the horizontal axis represents the internal information of zoom lens. The positional information (z) of thezoom lens16 is converted into the magnification information (γ) by thecomputer1 corresponding to a conversion graph shown in FIG. 14. For example, the positional information (z) is converted into the magnification information (γ) corresponding to a ROM table or an equation.
Next, with reference to FIG. 15, an example of a control algorithm of the[0131]computer1 will be described. When the program is executed, the flow advance to step S1. At step S1, theoperation area6, thepanorama operation area6B, thecursor7, and thepan tilter limiter6D are initialized and displayed on themonitor2 as shown in FIG. 2. The range of thepan tilter limiter6D may be fixed or variable. At step S2, a timer is set so that thecomputer1 communicates with themode controller23 at predetermined intervals. After such initial setup operations have been completed, the flow advances to step S3. At step S3, the system waits for an occurrence of an event. Corresponding to an event that occurs, the flow advances to a relevant step (for example, a timer event (at step S4), a mouse button down event (at step S5), a mouse button up event (at step S6), and a mouse move event (at step S7)).
Next, with reference to a flow chart shown in FIGS. 16A and 16B, the algorithm of the timer event will be described. The timer event is an event for causing the[0132]computer1 to communicate with themode controller23 at predetermined intervals. The timer event occurs at intervals of for example 50 msec. When the timer event occurs, the flow advances to step S11. At step S11, the system determines whether or not a communication port has been set. When the communication port has been set (namely, the determined result at step S11 is Yes), the flow advances to step S12. When the communication port has not been set (namely, the determined result at step S11 is No), the flow advances to step S18. At the first time the communication port has not been set, the flow advances to step S18. At step S18, the system opens the communication port. Actually, at step S18, the system opens an RS-232C port of thecomputer1. Thereafter, the flow advances to step S16.
Thereafter, in the timer event, the system performs a receive data checking process, an analyzing process, a data sending process for data stored in the send buffer (such as the drive command for the pan tilter[0133]28), and/or a communication data sending process for state check requests for thepan tilter28 and thezoom lens16. In this algorithm, the flow advances from step S11 to step S12. At step S12, the system determines whether or not data is stored in the receive buffer. When data is stored in the receive buffer (namely, the determined result at step S12 is Yes), the flow advances to step S13. When data is not stored in the receive buffer (namely, the determined result at step S12 is No), the flow advances to step S14. At step S13, the system analyzes receive data stored in the receive buffer and obtains positional information (p, t) of thepan tilter28 and positional information (z) of thezoom lens16 that have been requested to themode controller23. The system converts the positional information (p, t) of thepan tilter28 and the positional information (z) of thezoom lens16 into angular information (θ, φ) of thepan tilter28 and magnification information (γ) of thezoom lens16 corresponding to methods shown in FIGS. 11 and 14.
At step S[0134]14, the system determines whether or not a data send request has been issued. When a data send request has been issued (FlagSo==True) (namely, the determined result at step S14 is Yes), the flow advances to step S19. At step S19, the system sends data stored in the send buffer and resets the send request flag (FlagSo==False). Next, the flow advances to step S16. An example of data stored in the send buffer is data of a drive command of thepan tilter28 designated with themouse8. When a send request has not been issued (FlagSo==False) (namely, the determined result at step S14 is No), the flow advances to step S15. At step S15, the system sends position request commands for thepan tilter28 and thezoom lens16 from thecomputer1 to themode controller23.
At step S[0135]16, the system compares the old positional information of thepan tiler28 with the new positional information thereof and determines whether or not the positional information (p, t) has varied. When the positional information (p, t) of thepan tilter28 has varied (namely, the determined result at step S16 is Yes), the flow advances to step S20. When the positional information (p, t) of thepan tilter28 has not varied (namely, the determined result at step S16 is No), the flow advances to step S17. At step S17, the system compares the old positional information of thezoom lens16 with the new positional information thereof and determines whether or not the positional information (z) has varied. When the positional information (z) of thezoom lens16 has varied (namely, the determined result at step S17 is Yes), the flow advances to step S20. When the positional information (z) of thezoom lens16 has not varied (namely, the determined result at step S17 is No), this event is completed.
At step S[0136]20, when the positional information (p, t) of thepan tilter28 and/or the positional information (z) of thezoom lens16 has varied, the system redraws theframe6C in thepanorama operation area6B. At this point, the system converts the positional information (p, t) of thepan tilter28 into the angular information (θ, φ). In addition, the system converts the positional information (z) of thezoom lens16 into the magnification information (γ). With the converted angular information (θ, φ) and magnification information (γ), the system calculates positional coordinates (x, y) of thepan tilter28 and angle-of-view information (s, t) that is the angle of view displayed in theoperation area6A corresponding to Eq. (7) and Eq. (8), respectively. Corresponding to the resultant positional coordinates (x, y) and angle-of-view information (s, t), the system draws theframe6C in thepanorama operation area6B.
At step S[0137]16, the system compares the old positional information (p, t) of thepan tilter28 with the new positional information (p, t) thereof. Alternatively, the system may compare the old angular information (θ, φ) of thepan tilter28 with the new angular information (θ, φ) thereof. In this case, at step S20, with the new angular information (θ, φ), the system calculates the positional coordinates (x, y) corresponding to Eq. (7). Likewise, at step S17, the system compares the old positional information (z) of thezoom lens16 with the new positional information (z) thereof. Alternatively, the system may compare the old magnification information (γ) of thezoom lens16 with the new magnification information (γ) thereof. In this case, at step S20, the system calculates the angular information (s, t) with the new magnification information (γ) corresponding to Eq. (8).
Next, with reference to a flow chart shown in FIG. 17, the algorithm of the mouse move event will be described. The mouse move event is an event that occurs when the[0138]mouse8 is moved. According to the present invention, the mouse move event is used to select a drive position of thepan tilter28. When the mouse move event occurs, the flow advances to step S21. At step S21, the system determines whether or not the mouse pointer of themouse8 is present in theoperation area6A, thepanorama operation area6B, or the other area. When the mouse pointer of themouse8 is present in theoperation area6A (namely, the determined result at step S21 is Yes), the flow advances to step S22. When the mouse pointer of themouse8 is not present in theoperation area6A (namely, the determined result at step S21 is No), the flow advances to step S24. At step S22, the system sets an operation area flag (Flag-rin==True) and clears a panorama operation area flag (Flag-pin==False).
At step S[0139]24, since the mouse pointer of themouse8 is not present in theoperation area6A, the system clears the operation area flag (Flag-rin==False). At step S25, the system determines whether or not the mouse pointer of themouse8 is present in thepanorama operation area6B. When the mouse pointer of themouse8 is present in thepanorama operation area6B (namely, the determined result at step S25 is Yes), the flow advances to step S26. When the mouse pointer of themouse8 is not present in thepanorama operation area6B (namely, the determined result at step S25 is No), the flow advances to step S27. At step S26, the system sets the panorama operation area flag (Flag-pin==True). At step S27, since the mouse pointer of themouse8 is not present in thepanorama operation area6B, the system clear the panorama operation area flag (Flag-pin==False).
When the mouse pointer of the[0140]mouse8 is present in theoperation area6A or thepanorama operation area6B (namely, the determined result at step S21 or step S25 is Yes), at step S23, the system obtains positional coordinates (ξ, η) of the mouse pointer of themouse8 assuming that the center of the operation area is defined as (0, 0) of relative coordinates.
In this flow chart, when the mouse pointer of the[0141]mouse8 is present in theoperation area6A (namely, the determined result at step S22 is Yes), the system sets the operation area flag (Flag-rin==True). When the mouse pointer of themouse8 is not present in theoperation area6A (namely, the determined result at step S22 is No), the system clears the operation area flag (Flag-rin==False). When the mouse pointer of themouse8 is present in thepanorama operation area6B (namely, the determined result at step S25 is Yes), the system sets the panorama operation area flag (Flag-pin==True). When themouse pointer8 is not present in thepanorama operation area6A (namely, the determined result at step S25 is No), the system clears the panorama operation area flag (Flag-pin==False). When the mouse pointer of themouse8 is present in theoperation area6A or thepanorama operation area6B (namely, the determined result at step S21 or S35 is Yes), the system designates the positional coordinates of the mouse pointer of themouse8 to (ξ, η) assuming that the center of each operation area is defined as (0, 0) of relative coordinates.
Next, the mouse button down event and the button up event will be described. In the method for directly designating a desired point of the[0142]operation area6A or thepanorama operation area6B, only the algorithm of a mouse button down event shown in FIG. 18 is used. In the method for designating a desired point generated with a desired area, both the algorithm of a mouse button down event shown in FIG. 19 and the algorithm of a mouse button up event shown in FIG. 20 are used.
With reference to a flow chart shown in FIG. 18, the algorithm of the button down event for the method for directly designating a desired point of the operation area will be described. This event is an event that occurs when the left button of the[0143]mouse8 is pressed. In the present invention, this event is used as trigger information for driving thepan tilter28. When this event occurs, the flow advances to step S31. At step S31, the system determines whether or not themouse pointer8 is present in theoperation area6A corresponding to the operation area flag. When the operation area flag has been set (FlagRin==True) (namely, the determined result at step S31 is Yes), since the mouse pointer of themouse8 is present in theoperation area6A, the flow advances to step S32. When the operation area flag has been cleared (FlagRin==False) (namely, the determined result at step S31 is No), since the mouse pointer of themouse8 is not present in theoperation area6A, the flow advances to step S34.
When the mouse pointer of the[0144]mouse8 is present in theoperation area6A (namely, the determined result at step S31 is Yes), the flow advances to step S32. At step S32, the system calculates angular information (α, β) of thepan tilter28 with the angular information (θ, φ) of thecurrent pan tilter28 obtained from the received data, the magnification information (γ) of thezoom lens16, and the positional coordinate (θ, η) of the mouse pointer of themouse8 in theoperation area6A corresponding to Eq. (4) or Eq. (5) so that the designated object in the operation area is placed at the center of the screen.
At step S[0145]33, the system converts the angular information (α, β) of thepan tilter28 into the internal positional information (PNew, TNew) corresponding to the method shown in FIG. 11. The system stores the converted positional information (PNew, TNew) in the send buffer along with the absolute position drive command of thepan tilter28. In addition, the system sets the data send request flag (FlagSo==True) and sends the data with the process of the timer event.
After the system has determined that the mouse pointer of the[0146]mouse8 is not present in theoperation area6A (namely, the determined result at step S31 is No), the flow advances to step S34. At step S34, the system determines whether or not the mouse pointer of themouse8 is present in thepanorama operation area6B corresponding to the panorama operation area flag. When the panorama operation flag has been set (FlagPin==True) (namely, the determined result at step S34 is Yes), since the mouse pointer of themouse8 of thepanorama operation area6B is present in thepanorama operation area6B, the flow advances to step S35. When the panorama operation flag has been cleared (FlagPin==Fale) (namely, the determined result at step S34 is No), this event is completed.
In this flow chart, the system determines whether or not the mouse pointer of the[0147]mouse8 is present in theoperation area6A or thepanorama operation area6B corresponding to the operation area flag (FlagRin) and the panorama operation area flag (FlagPin). When the mouse pointer of themouse8 is not present in theoperation area6A and thepanorama operation area6B, this event becomes invalid.
When the mouse pointer of the[0148]mouse8 is present in thepanorama operation area6B (namely, the determined result at step S34 is Yes), the flow advances to step S35. At step S35, the system calculates angular information (α, β) of thepan tilter28 with the positional information (ξ, η) at the mouse pointer of themouse8 in thepanorama operation area6B corresponding to Eq. (9) so that the designated object in the operation area is placed at the center of the screen. Thereafter, the flow advances to step S33.
Next, with reference to FIGS. 19 and 20, the algorithms of the button down event and the button up event for the method for designating a desired point generated with a desired area in the[0149]panorama operation area6B will be described, respectively.
With reference to the flow chart shown in FIG. 19, the algorithm of the button down event will be described. This event is an event that occurs when the left button of the[0150]mouse8 is pressed. In this embodiment, this event is used as an event for determining the start point of a desired area. When this event occurs, the flow advances to step S41. At step S41, the system determines whether or not the mouse pointer of themouse8 is present in theoperation area6A corresponding to the operation area flag (FlagRin). When the operation area flag has been set (FlagRin==True) (namely, the determined result at step S41 is Yes), since the mouse pointer of themouse8 is present in theoperation area6A, the flow advances to step S42. When the operation area flag has been cleared (FlagRin==False) (namely, the determined result at step S41 is No), since the mouse pointer of themouse8 is not present in theoperation area6A, the flow advances to step S44.
When the mouse pointer of the[0151]mouse8 is present in theoperation area6A (namely, the determined result at step S41 is Yes), at step S42, the system sets an operation area start point obtain flag (FlagRstart=True). Thereafter, the flow advances to step S43. At step S43, the system stores positional coordinates (m1, n1) at which the left button of themouse8 is pressed as the start point of the desired area.
After the system has determined that the mouse pointer of the[0152]mouse8 is not present in theoperation area6A, at step S44, the system determines whether or not the mouse pointer of themouse8 is present in thepanorama operation area6B corresponding to the panorama operation area flag (FlagPin). When the panorama operation area flag has been set (FlagPin==True) (namely, the determined result at step S44 is Yes), since the mouse pointer of themouse8 is present in the panorama operation-area6B, the flow advances to step S45. When the panorama operation area flag has been cleared (FlagPin==False) (namely, the determined result at step S44 is No), this event is completed.
In this flow chart, the system determines whether or not the mouse pointer of the[0153]mouse8 is present in theoperation area6A or thepanorama operation area6B corresponding to the operation area flag (FlagRin) and the panorama operation area flag (FlagPin). When the mouse pointer of themouse8 is not in theoperation area6A and thepanorama operation area6B, this event becomes invalid.
When the mouse pointer of the[0154]mouse8 is present in thepanorama operation area6B (namely, the determined result at step44 is Yes), the flow advances to step S45. At step S45, the system sets a panorama operation area start point obtain flag (FlagPstart). Thereafter, the flow advances to step S43.
Next, with reference to a flow chart shown in FIG. 20, the algorithm of the button up event will be described. This event is an event that occurs when the left button of the[0155]mouse8 is released. In the present invention, the button up event is used as an event for determining the end point of a desired area.
When this event occurs, the flow advances to step S[0156]51. At step S51, the system determines whether or not the operation area flag has been set (FlagRin True) (namely, the mouse pointer of the mouse. 8 is present in theoperation area6A). When the operation area flag has been set (FlagRin=True) (namely, the determined result at step S51 is Yes), since the mouse pointer of themouse8 is present in theoperation area6A, the flow advances to step S52. When the operation area flag has been cleared (FlagRin==False) (namely, the determined result at step S51 is No), since the mouse pointer of themouse8 is not present in theoperation area6A, the flow advances to step S57. At step S52, the system determines whether or not the left button of themouse8 has been pressed in theoperation area6A corresponding to an operation area start point obtain flag (FlagRstart). When the start point obtain flag has been set (FlagRstart==True) (namely, the determined result at step S52 is Yes), since the left button of themouse8 has been pressed in theoperation area6A, the flow advances to step S53. When the start point obtain flag has been cleared (FlagRstart==False) (namely, the determined result at step S52 is No), since the left button of themouse8 has not been pressed in the operation area6A., the flow advances to step S57.
In other words, at steps S[0157]51 and S52, the system determines whether or not the operation area flag and the operation area start point obtain flag have been set or cleared. When the operation area flag and the start point obtain flag have been set (FlagRin True and FlagRstart==True), the system determines that the drive command has taken place in theoperation area6A. Otherwise, at steps S57 and S58, the system determines whether or not the panorama operation area flag (FlagPin) and the panorama operation area start point obtain flag (FlagPstart) have been set or cleared.
When the drive command has taken place in the operation area (namely, the operation area flag and the start point obtain flag have been set (FlagRin True and FlagRstart==True), at step S[0158]53, the system stores the positional coordinates (m2, n2) at which the left button of themouse8 has been released in theoperation area6A as the end point of the desired area. Thereafter, the system calculates positional information (ξ, η) as the coordinates of the center of the rectangle area generated with the positional coordinates (m1, n1) of the start point of the desired area and the positional coordinates (m2, n2) of the end point thereof.
At step S[0159]54, the system calculates angular information (α, β) of thepan tilter28 with the angular information (θ, φ) of the pan tilter obtained from the received data, the magnification information (γ) of thezoom lens16, and the positional information (ξ, η) at the mouse pointer of themouse8 corresponding to Eq. (4) or Eq. (5).
At step S[0160]55, the system converts the angular information (α, β) of thepan tilter28 into the internal positional information (PNew, TNew) of thepan tiler28 corresponding to the method shown in FIG. 11 and stores the positional information (PNew, TNew) to the send buffer along with the absolute position drive command. In addition, the system sets the data send request flag (FlagSo==True) and sends data with the process of the timer event.
At step S[0161]56, after the system has checked the mouse button up event in each operation area, the system clears the operation area start point obtain flag and the panorama operation area start point obtain flag (FlagRstart==False and FlagPstart==False). Thereafter, this event is completed.
At step S[0162]57, the system determines whether or not the mouse pointer of themouse8 is present in thepanorama operation area6B corresponding to the panorama operation area flag (FlagPin). When the panorama operation area flag has been set (FlagPin==True) (namely, the determined result at step S57 is Yes), since the mouse pointer of themouse8 is present in thepanorama operation area6B, the flow advances to step S58. When the panorama operation area flag has not been set (FlagPin==False), since the mouse pointer of themouse8 is not present in thepanorama operation area6B, the flow advances to step S56. At step S58, the system determines whether or not the left button of themouse8 has been pressed in thepanorama operation area6B corresponding to the panorama operation area start point obtain flag (FlagPstart). When the start point obtain flag has been set (FlagPstart==True) (namely, the determined result at step S58 is Yes), since the left button of themouse8 has been pressed in thepanorama operation area6B, the flow advances to step S59. When the start point obtain flag has not been set (FlagPstart==False) (namely, the determined result at step S58 is No), since the left button of themouse8 has not been pressed in thepanorama operation area6B, the flow advances to step S56.
When the panorama operation area flag and the panorama operation start point obtain flag have been set (FlagPin==True and FlagPstart==True) at steps S[0163]57 and S58, the system determines that a drive command has issued in thepanorama operation area6B. When the conditions at steps S51, S52, and S58 are not satisfied, this event becomes invalid.
When the drive command has been issued in the[0164]panorama operation area6B (namely, the panorama operation area flag and the start obtain flag have been set (FlagPin==True and Flag-pstart==True), the flow advances to step S59. At step S59, the system stores the positional coordinates (m2, n2) at which the left button of themouse8 has been released in thepanorama operation area6B as the end point of the desired area. The system calculates the positional information (ξ, η) of the mouse pointer of themouse8 as the coordinates of the center of the rectangle area with the positional coordinates (m1, n1) of the start point of the desired area that has been stored and the positional coordinates (m2, n2) of the end point of the desired area corresponding to Eq. (6).
At step S[0165]60, the system calculates angular information (α, β) of thepan tilter28 with the positional information (ξ, η) at the mouse pointer of themouse8 in thepanorama operation area6B corresponding to Eq. (9) so that the designated object in the panorama operation area is placed at the center of the screen. Thereafter, the flow advances to step S55.
In the above-described embodiment, one computer performs all processes of the system. On the other hand, according to a second embodiment of the present invention, as shown in FIG. 21, processes are shared by a server computer and a client computer so as to control a pan tiler camera through a network that has a restriction of a communication capacity. In FIG. 21, a[0166]computer1 is connected to amonitor2 and amouse8. Thecomputer1 controls the operation of apan tilter camera3 disposed at a remote place through a transmission line and aserver9. In other words, thecomputer1 composes a controller for a photographing apparatus. The transmission line may be a communication line (radio communication line or a cable communication line), a network, or the like. Thecomputer1 has a relation of a client to theserver9. A plurality ofcomputers1 can be connected to theserver9.
The[0167]pan tilter camera3 and theserver9 are disposed on a real scene in an environment denoted byreference numeral4. A screen photographed by thepan tilter camera3 disposed on thereal scene4 is denoted byreference numeral5. Hereinafter, thescreen5 is referred to as photographed screen. The photographedscreen5 is an actually photographed screen. When the zoom lens is placed on the telephotograph side, the angle of view decreases. In contrast, when the zoom lens is placed on the wide-angle side, the angle of view increases.
A picture photographed by the[0168]pan tilter camera5 is sent to aserver9. Theserver9 converts the photographed picture into video data. The video data is sent to thecomputer1 through a transmission line. The video data sent to thecomputer1 is decoded and displayed on themonitor2. Themonitor2 displays the photographedscreen5 in theoperation area6A thereof. A panorama picture with which a picture photographed by thepan tilter camera3 is superimposed is displayed in thepanorama operation area6B. As with the above-described embodiment, a desired point of thepanorama operation area6B (or theoperation area6A) or a desired point generated with a desired point is designated with the mouse8 (cursor7). Thepan tilter camera3 is driven through theserver9 and the transmission line and thereby the photographed screen is moved. In other words, thepan tilter camera3 is controlled through theserver9 so that the selected object is placed at the center of theoperation area6A.
FIG. 22 is a block diagram showing the overall system of the second embodiment of the present invention. Since the structures and functions of the[0169]camera portion11 and thepan tilter portion12 are the same as those of the first embodiment, the structures thereof are omitted in FIG. 22. Theserver9 comprises a controllingportion131, avideo capture portion129, and a storingportion130. Thevideo capture portion129 is composed of a video capture board. Thecomputer1 is connected to atransmission path132 through a network. Thecomputer1 is composed of a controllingportion31 and so forth as with the first embodiment. Since the algorithms used in thecomputer1 are the same as those of the first embodiment, for simplicity, their description is omitted.
Rays emitted from an object are sent to the[0170]camera portion11 as with the first embodiment. Thecamera portion11 converts the rays into various signals such as a brightness signal (Y), a color signal (C), and a video signal and supplies the resultant signals as picture signals to aTV monitor13 and thevideo capture portion129 of theserver9. As with the first embodiment, thepan tilter portion12 has a mode controller, a camera controller, and a pan tilter controller. These controllers control thecamera portion11 and thepan tilter28. Themode controller23 controls the overall system corresponding to the internal states of thecamera portion11 and thepan tilter portion12 and an external command as with the first embodiment.
The[0171]mode controller23 is connected to theserver9 through a communication path (in reality, RS232C interface). Themode controller23 sends commands received from theserver9 and commands received from thecomputer1 through theserver9 to the pan tilter controller and the camera controller so as to drive the pan tilter and the zoom lens of the lens block portion. Themode controller23 always receives information from the pan tilter controller and the camera controller so as to send the inner state of the pan tilter camera to the outside through theserver9.
The[0172]server9 obtains the inner state of the pan tilter camera (for example, the current positional information of the pan tilter and the zoom lens, and so forth) from themode controller23 of thepan tilter portion12 at predetermined intervals. To send a picture photographed by thecamera portion11 to thetransmission path132, thevideo capture portion129 is used. Thevideo capture portion129 converts a picture signal received from thecamera portion11 to digital picture data that is sent to thetransmission path132 in any quality (in the present embodiment, still picture JPEG format or still picture bit map format). The resultant digital picture is stored in a storing portion130 (for example, a hard disk).
When the[0173]computer1 issues a connection request to theserver9, theserver9 sends a GUI (Graphical User Interface) panel information to thecomputer1 so as to display a picture on themonitor2. The panel information is an arrangement of a panel and a program that runs on thecomputer1 when the mouse is operated on the panel. Examples of the panel information are programs written in HTML, JAVA, and so forth. Picture data photographed by the pan tilter camera and the state thereof are sent to thecomputer1 through thetransmission path132 at predetermined intervals.
In another embodiment, Internet is used as the[0174]transmission path132. Data is exchanged on thetransmission path132 using the HTTP protocol. Thecomputer1 causes themonitor2 to display GUI panel information, picture information, the state of the pan information, picture information, the state of the pan tilter camera, and so forth received from theserver9 with an Internet browser. Anoperation area6A, apanorama operation area6B, a panoramapicture generation button6E, zoom operation buttons, acursor7 of a pointing device14 (mouse8), and so forth displayed on the GUI panel of themonitor2. Picture data received from the server is decoded and displayed in theoperation area6A. When the picture data is updated, the picture is also rewritten in theoperation area6A. The moving range of the pan tilter camera, the position of the pan tilter, angle-of-view of the zoom, and so forth are displayed on thepanorama operation area6B, with the same method as the first embodiment. Thecomputer1 executes the operation program for the GUI panel received from theserver9.
In the second embodiment of the present invention, a drive command of the[0175]pan tilter camera3 and an operation command of theserver9 are generated with a clicking operation of themouse8. When themouse8 is clicked on thepanorama generation button6E, thecomputer1 causes theserver9 to generate a panorama screen. When theserver1 receives this command, as with the first embodiment, theserver9 moves the pan tilter and the zoom lens to relevant positions, photographs ten pictures at these positions, maps them to the virtual spherical surface, normalizes them with latitude and longitude, and combines them. After theserver9 has combined these pictures as a panorama picture, it converts the panorama picture into a JPEG format picture. Theservers9 sends the resultant picture to thecomputer1 through thetransmission line132.
The[0176]computer1 displays the received panorama picture in thepanorama operation area6B of themonitor2. Thus, the user can see the environment at the position of thepan tiler camera3 at a glace. When themouse8 is clicked in thepanorama operation area6B, thecomputer1 sends to the server9 a command (absolute position drive command) that causes the position at which the mouse is clicked on the panorama picture to be placed at the center of theoperation area6A (picture). Theserver9 sends this command to thepan tilter camera3. Thus, the pan tilter is driven to a relevant position. In such a manner, the drive target of the pan tilter is designated on the panorama screen. Consequently, the user can easily operate the pan tilter without need to consider a drive command on the network, a delay of a video signal, and so forth.
In the first embodiment, whenever the[0177]pan tilter camera3 sends a picture to thecomputer1, thecomputer1 combines it and displays the combined picture in thepanorama operation area6B. Alternatively, after the computer has combined all pictures, it may display the resultant picture in thepanorama operation area6B.
According to the first embodiment, the[0178]operation area6A and thepanorama operation area6B are displayed on themonitor2 connected to thecomputer1. Alternatively, theoperation area6A and/or thepanorama operation area6B may be displayed on another display unit other than themonitor2.
According to the first embodiment, the[0179]pan tilter camera3 is driven by operating theoperation area6A and thepanorama operation area6B with themouse8. Alternatively, one of theoperation area6A and thepanorama operation area6B may be operated with themouse8.
According to the first embodiment, the[0180]operation area6A and thepanorama operation area6B are displayed on themonitor2. Alternatively, only thepanorama operation area6B may be displayed on themonitor2.
According to the first embodiment, the[0181]operation area6A and thepanorama operation area6B are displayed on themonitor2. By operating theoperation area6A and thepanorama operation area6B with themouse8, thepan tilter camera3 is freely driven. Alternatively, a panorama picture may be displayed on themonitor2. In this case, thepan tilter camera3 may be driven with an operation portion such as eight-direction keys.
According to the above-described embodiments, the photographing range of the[0182]pan tilter camera3 may be the maximum moving range of thepan tilter camera3 or limited with a limiter. The function for limited the photographing range with the limiter may be provided by thepan tilter camera3 or thecomputer1.
In the first embodiments, a desired point generated with a desired area is placed at the center of thereof. Alternatively, a desired point may be placed at for example the center of gravity, the incenter, the circumcenter, or the orthocenter of the area.[0183]
According to the first embodiment, a panorama picture displayed in the[0184]panorama operation area6B is not limited as long as it represents the environment in which thepan tilter camera3 is disposed. For example, the panorama picture may be a moving picture, an intermittent still picture, or a still picture.
According to the second embodiment, for simplicity, one[0185]computer1 is connected to theremote server9 and thepan tilter camera3 that are disposed at a remote place. Alternatively, a plurality ofservers9 and a plurality ofpan tilter cameras3 may be disposed worldwide. For example, onepan tilter camera3 may be controlled by a plurality of computers through for example Internet.
According to the present invention, with a panorama picture, the user can see the environment in which the photographing apparatus is disposed at a glance. Since the positional information of the pan tilter, the angle of view of the zoom lens, and the moving range of the pan tilter are added as information to the picture, the user can easily know the state of the photographing apparatus.[0186]
In addition, when the user designates a desired object in the panorama operation area, he or she can easily capture it in the field of view of the picture to be photographed. Moreover, by designating an object in the operation area, the user can precisely adjust the position that cannot be designated in the panorama operation area. In comparison with the conventional method of which the user operates direction keys while observing a monitored picture (namely, a picture is photographed through a feed-back operation and an experience), according to the present invention, a desired object can be displayed at the center of the operation area with the clicking operation of the mouse.[0187]
In addition, according to the present invention, since the position to which the pan tilter moves can be predicted beforehand, on a communication line that causes picture and information data to be delayed and/or lost (such as Internet), the user can seamlessly operate the pan tilter camera. Thus, according to the present invention, the pan tilter camera can be easily operated with high visibility.[0188]
Although the present invention has been shown and described with respect to a best mode embodiment thereof, it should be understood by those skilled in the art that the foregoing and various other changes, omissions, and additions in the form and detail thereof may be made therein without departing from the spirit and scope of the present invention.[0189]