WO2001086594A2 - Automated processing of graphical image to make discreet objects pointer-sensitive - Google Patents

Automated processing of graphical image to make discreet objects pointer-sensitive Download PDF

Info

Publication number
WO2001086594A2
WO2001086594A2 PCT/US2001/014073 US0114073W WO0186594A2 WO 2001086594 A2 WO2001086594 A2 WO 2001086594A2 US 0114073 W US0114073 W US 0114073W WO 0186594 A2 WO0186594 A2 WO 0186594A2
Authority
WO
WIPO (PCT)
Prior art keywords
pixel
seat
pixels
storage device
program storage
Prior art date
Application number
PCT/US2001/014073
Other languages
French (fr)
Other versions
WO2001086594A3 (en
Inventor
Steve Souza
Original Assignee
Seatadvisor.Com, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seatadvisor.Com, Inc. filed Critical Seatadvisor.Com, Inc.
Priority to AU2001259334A priority Critical patent/AU2001259334A1/en
Publication of WO2001086594A2 publication Critical patent/WO2001086594A2/en
Publication of WO2001086594A3 publication Critical patent/WO2001086594A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation

Definitions

  • a ticket purchaser may consider the quality of the view from a seat and comfort of the seat in a venue to be important criteria when purchasing a ticket for an event with assigned seating, for example, a concert or a play.
  • Section level maps and seat level maps representative of seating arrangements in a venue may be helpful in determining the quality of the view from a seat.
  • Such maps may be provided on an Internet site for ease of access by the ticket purchaser. However, it may be desirable to provide more detailed information about a particular desired seat from the Internet site.
  • FIG. 1 is a system for providing interactive section level maps and seat level maps for venues available to users through an Internet site.
  • FIG. 2 is a section level map according to an embodiment .
  • FIG. 3 is a seat level map according to an embodiment .
  • FIG. 4 is a flow diagram for venue processing operation according to an embodiment.
  • FIG. 5 is a flow diagram for a section level mapping operation according to the embodiment of FIG. 4.
  • FIG. 6. is a dialog box for defining the scale of a map. according to an embodiment.
  • FIG. 7 is a dialog box for entering information about a section map according to an embodiment.
  • FIG. 8 is a flow diagram for a section finding operation according to the embodiment of FIG. 4.
  • FIG. 9 is illustration of an exemplary section contour according to an embodiment.
  • FIG. 10 is a flow diagram for a section mapping operation according to the embodiment of FIG. 4.
  • FIGS. 11A-11F are search tables for an edge follower operation in a northern direction of travel according to an embodiment.
  • FIGS. 12A-12F are search tables for an edge follower operation in a southern direction of travel according to an embodiment .
  • FIGS. 13A-13C is a flow diagram for a corner search operation according to the embodiment of FIG. 4.
  • FIG. 14 is a continuation of the flow diagram of FIGS. 13A-13C.
  • FIG. 15A-15B is a flow diagram for a seat level mapping operation according to the embodiment of FIG. 4.
  • FIG. 16 is a dialog box for entering information about a seat map according to an embodiment.
  • FIG. 17 is a flow diagram for a row finding operation according to the embodiment of FIG. 4.
  • FIG. 18 continues the flow diagram of FIG. 17.
  • FIG. 19 is an illustration of an exemplary row of seat objects according to an embodiment.
  • FIG. 20 is an illustration of another exemplary row of seat objects according to an embodiment.
  • FIGS. 21A-21B is a flow diagram for a seat finding operation according to the embodiment of FIG. 4.
  • FIG. 22 is a display screen for an interactive section level map according to an embodiment.
  • FIG. 23 is a display screen for an interactive seat level map according to an embodiment.
  • FIG. 24 is a display screen including a textual review of a seat according to an embodiment.
  • FIG. 25 is a display screen including a view photograph according to an embodiment.
  • FIG. 26 is a display screen including a seat photograph according to an embodiment.
  • FIG. 27 is a display screen including comments regarding a seat according to an embodiment.
  • FIG. 28 is an interactive map for a restaurant according to an embodiment.
  • FIG. 1 illustrates a system according to an embodiment for enabling a remote user 10 to access interactive maps associated with a venue 12 over a network connection 14, e.g. a World Wide Web site on the Internet.
  • venues e.g., large stadiums
  • Each venue 12 may have a number of seats arranged in one or more sections and may have an associated interactive section level map(s) 30, as shown in FIG. 2, and/or seat level map(s) 50 as shown in FIG. 3, representing actual sections and seats in the venue 12.
  • Section objects and seat objects in raw image files of the section level and seat level maps may be mapped and made pointer-sensitive. These objects may be transformed into "hotspots" on the displayed image that activate a function when selected. Information from an object mapping operation may be compiled into text files and transmitted to a central site 16 and imported into the venue database 18.
  • an Internet site that enables a user to purchase and/or reserve a ticket for a seat in a venue directly from the interactive seat level map 50.
  • the interactive seat level map 50 includes seat icons 52 that represent the actual arrangement of seats in the venue 12.
  • the user may be provided information regarding a particular seat that includes, for example, the distance of the seat from the stage 54, a viewing angle 56 to the stage from the seat, an image representative of the actual view from the seat, an image representative of the actual seat, ratings and/or reviews of the view and sound quality from the seat and the comfort of the seat.
  • the user may purchase a ticket for that seat directly from the Internet site.
  • an operation is provided to automatically compute the pixel region associated with each section icon 32 (FIG. 2) or seat icon 52 in an associated section level map or seat level map, respectively.
  • Information regarding the section and seat to be entered into the database may be obtained by venue surveyors at the venue 12.
  • Information relating to the accuracy of the graphical image files from which the interactive maps are created may also be acquired at the venue 12. This information may include, for example, distances between rows, aisles, and sections, distances between the seats and a focal point of the stage, the height of elevated sections, the convention used to identify rows, aisles, and sections, the locations of obstructions, exits, and designated seats and access ramps for the disabled.
  • the focal point of the stage may be any "point of interest" in the venue as defined by the surveyor. For example, this may be center stage or a point at the center of the front edge of the stage.
  • Other information that may be associated with particular seats in the database include photographs and textual descriptions.
  • a photograph of each seat, or a seat representative of those in a particular group of seats may be taken and converted to a digital image stored in the database.
  • a photograph of an actual view from each seat, or a seat having a view representative of a particular group of seats may be taken and converted to a digital image stored in the database.
  • An object may be placed on the stage, for example, a life-size cut-out of a human figure, to provide a better perspective of the viewing distance and angle from a particular seat.
  • the visit to the venue may provide a basis for textual descriptions and reviews of particular seats to be entered into the venue database 18.
  • Some venues may have different seating arrangements for different events. For example, a venue that hosts concerts, plays, sporting events, and special functions may have different seating arrangements for each type of event. Information for creating appropriate section level maps and seat level maps may all be obtained at the visit to the venue.
  • the venue surveyors may import the venue information into the venue database 18 remotely from a venue surveyor machine 20.
  • the venue surveyor machine 20 may be a general purpose computer in communication with the central site 16 through a network connection.
  • the venue surveyor may also enter reviews of the particular section or seats provided by other patrons who have seen an event from a particular seat.
  • Each venue may have had an associated section level map 30, (FIG. 2), and/or one or more associated seat level map 50, (FIG. 3) .
  • a particular venue may have more of each type of map depending on the number of sections and seating arrangements compiled for that venue.
  • the section level and seat level maps may be in a digital graphical image file, for example, a GIF or JPEG format, or other known or currently unknown but contemplated future file formats for graphical images. Each map is drawn roughly to scale and may be of varying detail.
  • a mapping operator performs mapping operations on the raw image files of the section level and seat level maps according to various embodiments described below.
  • the instructions for performing the mapping operation may reside in a memory or machine readable medium, e.g., a CD-ROM 22 residing in a mapping machine 24.
  • the mapping machine 24 may be a general purpose computer in connection with the central site 16 through a network connection.
  • the instructions for performing the mapping- operations may be in the JAVA programming language.
  • JAVA is an object oriented language that is advantageously platform-independent and may run on any machine utilizing a JAVA Virtual Machine.
  • the instructions may be implemented in hardware and/or in software using a number of different interpreters or compilers and programming languages.
  • FIG. 4 illustrates the flow of a map processing operation for a venue according to an embodiment.
  • the production map files, i.e., the raw graphical image files, for a venue are stored in a venue file in state 100.
  • a venue map file for the venue is opened in state 102.
  • Maps determined to be section level maps in state 104 are processed in state 108 using a mapping operation described below in connection with FIGS. 5 to 14.
  • Maps determined to be seat level maps in state 104 are processed in state 106 using a mapping operation described below in connection with FIGS. 15 to 21.
  • the processed maps in the dataset corresponding to the venue may be saved to disk in state 112 for subsequent import to database or directly upload to a database on a server on a network, at which point the operation may be terminated in state 114.
  • the section level map 30 illustrates a general outline, or contour, of the various sections 32, 34, 36 and their relation to a stage 54.
  • Each section that includes assigned seating, e.g., "First Balcony” 34 and "Main Floor” 32, may be pointer- sensitive .
  • the operator may use the section mapping operations according to an embodiment described in connection with FIG. 5 to compute the coordinates of the pixels that lie inside a section contour. Once these pixels are determined, they may be made pointer-sensitive and associated with information regarding that particular section in the venue database 18.
  • each section icon may be represented as a blank region including white, "off", pixels defined by a boundary line having black, "on”, pixels.
  • the section mapping operation begins with the operator selecting a point inside a particular section, from which the operation travels in a defined or default direction until it encounters an "on" pixel in the boundary line. The operation then travels along other "on" pixels in the border line until all pixels on a contour, e.g., an inner contour, of this border line is determined. From these points, corner points are chosen which define a polygon that approximates the shape of the section object. All pixels in an area defined by that polygon are made pointer-sensitive and associated with information relating to the particular section in the database.
  • the polygon may be a rough approximation generated automatically by the mapping operation or defined manually by operator-selected corner points. Approximating the polygon to the borderline may advantageously conserve storage space by limiting the number of points that must be stored to define the contour.. This may be significant for section contours having curved borders and/or complex geometries .
  • a "define scale” dialog box 250 such as that shown in FIG. 6, may be displayed.
  • the operator may be prompted to define an image dots per inch (“DPI") value in field 252, a map scale value in field 254, deselect the "seat map” check box 256, and set a focal offset value to "0" in field 258 in state 200.
  • DPI image dots per inch
  • An exemplary DPI value for a GIF image file according to an embodiment is seventy-two (72) .
  • the operator may define the focal point of the map with a pointer device in state 202.
  • the focal point may be a point at or near center stage or a point at or near the center of the front edge of the stage.
  • the focal point may be different for different events.
  • the focal point may be any point of interest in a venue and may lie on the 50-yard line for a football layout, half-court for a basketball layout, or home plate for a baseball layout.
  • the operator may designate a section survey point inside the selected section contour, e.g., Main Floor 32, using the pointer device. If the operator decides to define the designated section manually in state 208, the operator may trace a simplified section outline on or around the section contour in the image file with pointer picks in state 210 and close the contour in state 212.
  • the "map section” dialog box 270 has data entry fields that may include, for example, venue code 272, layout code 274, level 276, tier 278, section 280, and section number 282.
  • the layout code corresponds to a particular type of seating arrangement typical to a type of performance, for example, a theater, play, or concert layout.
  • the venue code uniquely identifies a venue.
  • the venue code is the same for every layout of a venue.
  • the level, tier, section, and section number may all be alphanumeric strings corresponding to a label identifying the respective seating area.
  • At least the layout code and venue code are filled in for the first section in state 220.
  • the level, tier, section, and section number fields may be modified in state 222 if appropriate.
  • a section finding operation may be carried out in state 224 to define a section polygon corresponding to the section contour in the image file. If more sections are determined to remain in the venue in state 226, the operation may return to state 202. Otherwise, the section finding operation may terminate in state 228.
  • the section finding operation passes in the x, y coordinates of a survey point and a defined or default maximum width value at state 300. If the section contour is determined to be manually traced in state 302, the polygon may be defined by the manually entered trace points in state 304. Otherwise a section mapping operation may be initiated in state 306 to determine a number of corner points that define the polygon. An embodiment of the section mapping operation is described below in connection with FIGS. 8-14.
  • the polygon When the polygon is defined, extraneous points such as the section survey point and manual outline may be erased in state 308.
  • the mapped section object defined by the polygon may be added to the venue record in state 310.
  • the section number may be automatically advanced for a subsequent section finding operation in state 312.
  • the automatic section mapping operation according to an embodiment generally follows an inside contour 350 of a section object 352 and identifies a number of corner points 354 determined by their degree of deviation from a line or line-like segment 356 being traced between successive points. These corners 354 may be used, to define a section polygon 358 approximating the section object 352 in the raw image file.
  • the operator may select a section survey point 360 by clicking on or otherwise selecting a pixel within the contour of the unmapped section object 352. From the survey point 360, pixels may be scanned in a defined or default direction 362 until an "on" pixel is encountered.
  • a pixel may be a considered a corner candidate if subsequent pixels on the border deviate from the line 356 being traced.
  • mapping options having defined or default values may be used to determine a significant deviation.
  • the section mapping operation may be iterative. On a first edge following operation, a raw list of the coordinates of "on" pixels found on the inner contour may be stored in a mapping database. These points may then be evaluated in one or more operations based on mapping criteria to determine those "on" pixels that deviate significantly from the line and store these "on" pixels as corner point candidates. Corner points to be used in the polygon 358 may be determined from these corner point candidates in subsequent operations based on mapping criteria.
  • the mapping criteria may include defined or default mapping options available to the operator.
  • a maximum deviation option may be used to monitor
  • the maximum deviation option may be used to detect corner points in a raw list of section outline points obtained in a first iteration of the edge following operation.
  • An exemplary default value is three (3) deviations.
  • a slope tolerance option may be used to monitor a percentage change between a slope ml and a slope m2 at which two points are considered to be on different lines.
  • the slope tolerance option may be used to remove redundant points in a section contour in a later iteration to identify corner points used in the polygon.
  • An exemplary default value is twelve percent (12%) .
  • a line tolerance option may be used to monitor the minimum number of degrees of deviation angle must differ from the current vector in order to be considered a valid deviation.
  • a collapse point option may be used to set a sampling interval to determine how many pixels apart two points on a section contour must be in order for both to be considered valid corner point candidates. Points less than this number apart may be removed from consideration. This may advantageously reduce the number of points stored in the database for the section polygon.
  • the section mapping operation operates on the coordinates of the section survey point and the maximum width value which may be passed into the program at state 400. Starting at the survey point coordinates, pixels may be scanned in a defined or default direction until an "on" pixel, representing an edge of the section contour, is encountered in state 402. An exemplary scan direction 362 (FIG. 9) is westward. If the survey point is determined to be outside of the section object in state 404, an error value may be returned in state 406. Otherwise the coordinates of a start point may be set to the coordinates of the found "on" pixel in state 408.
  • all pixels defining the inner contour of the section object 352 are identified using an edge follower operation, examples of which are described in FIGs. 11A-F and 12A-F.
  • the exemplary edge follower may examine pixels adjacent to the current pixel 450 based on a protocol corresponding to a current direction of travel.
  • the current direction of travel may be determined by the orientation of a previous pixel 452 to the current pixel 450, or may be a defined or default direction for the starting pixel.
  • the exemplary search tables shown in FIGs 11A-11F correspond to a clockwise search of an inner contour in a northern direction of travel.
  • FIGs 11A-F describe a search table for the northern direction of travel in descending level of priority. That is, FIG 11A illustrates the first search pixel search operation attempted and FIG. 11F the last.
  • FIGs 12A-F describe a similar protocol, but for a southern direction of travel in a clockwise search.
  • Lines that define the contour of an object may be more than one pixel deep.
  • the edge follower may search for an "off" pixel 454 adjacent to a found "on” pixel 456. This ensures that the edge follower remains on the edge of the contour.
  • the section object in the image file may be considered a "blob.” Regardless of its shape, the blob may be contained in a bounding box.
  • the bounding box may be a rectangle that contains the blob and is defined by the minimum and maximum x- and y-coordinates of the blob.
  • the bounding box may be used to determine a maximum width of the section object 352 (FIG. 9) .
  • the minimum and maximum x, y values may be stored to track the shape of the bounding box in state 410 (FIG.
  • an "Index” value may be set to "2"
  • a Boolean “last_pass” value is set to FALSE
  • the coordinates of a "Point_l” set to the coordinates of a first point in the section outline
  • the coordinates of a "Point_2” set to the coordinates of a second point in the section outline
  • the coordinates of a first corner set to the coordinates of "Point_l” in state 500.
  • a “Vector_a” value may be set to the value of
  • An angle ⁇ may be calculated between "Vector_a" and “Vector_b" at each iteration of the corner search
  • “Point_l” may be selected as a corner candidate and added to the list of corner points for the polygon in state 524.
  • “Point_l” may be set to a “Corner” value and “Point_2” set to a “(Corner + 1) " value in state 526.
  • the operation may then return to state 502.
  • “Index” may be set to "(Index + 1 ) " in state 530. If “Index” is determined to be greater than or equal to the number of outline points in state 532, “Index” may be set to "0” and “last_pass” set to "true” in state 534. The operation may then return to state 504.
  • the operation may return to state 502. Otherwise, the value of "last_pass” is inspected in state 540. If “last_pass” is “true”, the operation may return to state 542 (FIG. 14) . Otherwise, “Index” is set to a value “(Corner + 1) " and “Point_2" set to "Outline [Index] " at state 536. The operation may then return to state 514.
  • the list of corner points for a section polygon used to describe a section contour may be returned in state 546.
  • This section contour may be mapped on the image of the section object in the image file. Pixels in the region defined by the section polygon may be made pointer-sensitive. The area of the section polygon may act as a "hotspot" which activates a function when selected. Pixels in the area defined by the section polygon may be associated with seat level maps corresponding to the section or the seat information page and other information relating to the particular section in the database.
  • FIGS. 15A-B illustrate a flowchart describing the mapping of a seat level map 50 according to an embodiment.
  • FIG. 3 illustrates a seat level map according to an embodiment .
  • the seat level map includes the general outline of the section with seat icons 52 representing the seating arrangement for a particular layout at the venue 12.
  • the seat icons 52 are arranged in rows and the map may indicate row and seat designations.
  • the seat map may include unreservable areas such as the stage, control booth area, sound station, and press area.
  • the seat map may also show the locations of exits and designated seating for the disabled.
  • the seat icons are empty (white) regions bordered by a non-white, generally circular line.
  • the seat circles may be marked by setting the pixels in the circle to a particular color.
  • the actual seat objects may have other geometric shapes, such as polygonal.
  • the "define scale” dialog box 270 (FIG. 6) may be displayed. The operator may be prompted to set DPI, map scale, focal point, and focal offset at state 600. The operator identifies the map as a seat map by checking the "seat map” checkbox 256.
  • the operator may set mapping and crawling options in state 602.
  • An exemplary mapping option is a maximum seat points option which sets the maximum circumference of a seat circle in pixels. This may prevent runaway contour following, for example, in the case of a broken circle.
  • An exemplary default value for this option is fifty (50) pixels.
  • An exemplary crawling option is an automatic row advance which determines whether a row number or letter should stay the same or advance automatically with each mapped row.
  • a window may be provided to show pointer distance and angle from the focal point of the current seat, when mapped, under the pointer icon at 604.
  • the operator may select a "define row” command at 606.
  • the operator may select a row by clicking on the first seat and last seat of the row to be mapped at 608.
  • Aisles may be identified by associating a "jump aisle” flag with the last seat in a row section adjacent an aisle.
  • the "jump aisle” flag may be set by clicking on the last seat in the row section, and while holding a particular key, e.g., the "shift” key, clicking on the first seat in the row section across the aisle.
  • the operator For a left to right (west-east) mapping operation, the operator first clicks on seat (icon) D28, then clicks on seat D2. With the shift key depressed, the operator clicks on seat D101 and releases the shift key. The operator clicks on seat D114. With the shift key depressed, the operator clicks on seat Dl and releases the shift key. The operator then clicks on seat D27 to complete the selection of row D.
  • a "map seats” dialog box 650 may be displayed to prompt the operator to enter information relating to the seats at state 612. If the row being mapped is the first in the seat map at state 614, the operator may be prompted to enter the venue code and layout code for the seat map. If the row being mapped is not the first row map, at 618, the operator may be prompted to enter in the appropriate field the section level 656, tier name 658, section name 660, and/or section number 662.
  • the dialog box 650 may also include fields for entering row number 664, a first seat number 666, and a seat increment value 668.
  • a row finding operation may be carried out at state 622. If the mapped row is determined not to be the final row in the seat map at state 624, the operation may return to state 608 to map the next row. If the mapped row is the final row, the seat mapping operation may terminate at state 626.
  • FIGS. 17A-B illustrate a flow chart describing a row finding operation according to an embodiment.
  • the starting seat designation and increment value may be entered by the operator or preserved from a previous row mapping operation.
  • an "Index” value is set to "0” and an “nPoints” value is set to the number of points in the row survey polyline, e.g., six (6) for the exemplary operation on row D described above in connection with FIG. 3, where two points were selected for each row section.
  • the "Index” value is compared to the value " (nPoints-1) " at state 704. If “Index” equals " (nPoints- 1)", which may occur when the last row section has been mapped, the mapped row may be added to the venue record and the row number may be automatically advanced at state 706, and the row finding operation may be terminated at state 708.
  • the pixel coordinates of a current "Point_l” may be compared to a current "Point_2" at state 716 to determine whether the row scan direction is from left-to-right (eastward) or right-to-left (westward) .
  • a seat finding operation in the row may be carried out using "Point_l” as a starting point and the row scan direction at state 718.
  • the seat finding operation may be used to find the seat contour from a start point inside the seat circle, trace “on” pixels on the inner contour of the seat circle, and from the "on” pixel coordinates, determine a center point and a maximum diameter 2R for the seat circle.
  • the seat information may be added to the current row, the seat number incremented a defined or default value, and the maximum diameter 2R of the seat circle stored at state 722.
  • the row finding operation may be used to determine a new starting point 850 for the for the seat finding operation on an adjacent seat circle 852 after the first seat circle 854 has been mapped, and continue this operation until all seats in the row 856 have been mapped.
  • a reasonable approximation for the center point 858 of an adjacent circle 852 may be found by extending a line 860 having a length equal to the diameter of the first circle from the center point of the first circle in the scanning direction along the slope of the line extending between "Point_l" 862 and "Point_2" 864 which lie in the first 854 and last seats 866 of the row, respectively.
  • a slope m may be determined from the x, y coordinates (xl, yl, x2, y2) of "Point_l” and "Point_2,” respectively. From slope m, an angle ⁇ of a right
  • triangle may be determined.
  • the values of m and ⁇ may be determined.
  • Java code segments may be determined, for example, using Java code segments:
  • FIG. 18 continues the flow diagram for FIG. 17. If slope m is determined to be undefined, i.e., vertical, at state 760, the hypotenuse A is added or subtracted, depending on the direction of travel (north-south or south-north) , to the y coordinate of the seat center point to get the next search point at state 762. A seat finding operation may be performed using this new search point at 764. If slope m is determined to have a value, rather than being undefined, at state 760, the C and B values of the right triangle are added to seat center point x and y, respectively, to get the next search point at state 766. A seat finding operation may be performed using this new search point at state 764.
  • the seat is added to the current row, the seat number is incremented by the defined or default increment value, and the maximum diameter 2R of the current seat saved at 768.
  • the seat search may be ended for this row at state 750 (FIG. 17A) .
  • the row of seats may be added to the venue record, and row number advanced at state 706, and the row finding operation may be terminated at state 708.
  • the next search point is determined using the coordinates of the center point of the current seat. If the row has a large curvature, as shown in FIG.
  • FIGS. 21A-B illustrate a flow diagram describing the seat finding operation.
  • the seat finding operation passes in the values of the x, y coordinates of the starting point, the scan direction, and the defined or default maximum width in state 800.
  • the scan direction may be determined in state 802.
  • pixels may be scanned eastward or westward in 804 and 806, respectively, until an "on" pixel is located to determine an edge of the image. If the scan reaches an edge of the seat map without encountering an "on" pixel, an error value may be returned in state 810. This may occur in the case where the start point was selected outside of a seat circle in state 808.
  • the first "on" pixel may be used to set the starting x, y coordinates for an edge follower operation such as that described above in connection with FIGs. 11 and 12.
  • minimum and maximum points may be stored to track the shape of a bounding box for the seat circle at state 814. These min/max points may be used to determine whether the shape width exceeds the defined or default maximum width at state 816. If so, an error value may be returned at state 810.
  • an error value may be returned in state 810. This may occur in the case of searching an object with an open contour. If the next adjacent "on” pixel is located, the current x, y coordinate is set to that of the next "on” pixel .
  • the x, y coordinates of the current pixel may be compared to that of the start pixel in state 824. If the current pixel is not the start pixel, the operation may return to state 814.
  • a bounding box 880 (FIG. 19) may be calculated that contains the seat object.
  • the seat icon may have a geometric shape other than a circle
  • the radius R for a seat circle representing the seat icon may be returned in state 826.
  • the radius R is one-half the width of the bounding box 880.
  • the coordinates of the center point of the seat circle may be set to the center of the bounding box 880 in state 826. These values may be returned in state 828.
  • the data obtained from the mapping operations on the image files for the section level and seat level maps corresponding to a particular venue may then be transcribed to a number of text files for transport- into the database or directly uploaded.
  • these text files may include: a LAYOUT file; a COORD file; a SECTION file; a ROW file; and a SEAT file.
  • the LAYOUT file may contain basic information about a particular layout of a venue. There may be one or more layouts for a venue.
  • LAYOUT_CODE Code corresponding to layout (e . g . 16 (Theatre ) , 5 ( Play) , 8 (Concert ) , etc . )
  • VENUE_CODE Code that uniquely identifies a venue.
  • IMAGE_FILE Name of image file that contains the top- level map, which may be a section-level or seat-level map, depending on the size and configuration of the venue .
  • IMAGE_WIDTH Width of the image file, in pixels.
  • IMAGE_HEIGHT Height of the image file, in pixels.
  • NUM_SEATS Number of seats total in this layout of the venue.
  • NUM_SECTIONS Number of sections total in this layout of the venue. This value may be "1" for a venue that does not distinguish different sections.
  • SCALE Scale used in drawing the image file entered by the operator.
  • DPI Dots per inch of the image file.
  • FOCAL_POINT An X/Y position defining the "point of interest" within the image file.
  • the COORD file may contain geometric coordinates describing the outlines of sections and the center p ⁇ int/diameter of seats found within the image files that contain the various maps of the venue layout.
  • a COORD file according to an embodiment may have the following format: COORD_ID I COORD_TYPE
  • COORD_ID Identifier for this shape instance.
  • COORD_TYPE Qualifier describing the type of shape contained in the record.
  • COORD_DATA The points/dimensions making up the shape in this record.
  • VENUE_CODE Venue code to make the association between these shapes and a certain venue. See description in LAYOUT file, above.
  • the SECTION file may describe sections within this layout of the specified venue. For a venue that makes no section distinction, this file may contain the header line and one additional line/record describing the whole venue as a "section".
  • SECTION_ID Unique numeric identifier for this section.
  • SECTION_LEVEL String corresponding to section level name, if any.
  • SECTION_TIER String corresponding to section tier name, if any.
  • SEATPHOTO_ID Defined later during a review input process .
  • VIEWPHOTO_ID Defined later during a review input process .
  • IMAGE_FILE Name of image file that contains the map associated with this section, if any. If this is a one/no-section venue, this field will be empty, and the LAYOUT table will contain the top-level image map name.
  • IMAGE_WIDTH Width of the image file, in pixels.
  • IMAGE_HEIGHT Height of the image file, in pixels.
  • ELEVATION Height from the floor to the front edge of the section.
  • SCALE See LAYOUT description.
  • FOCAL_POINT May be slightly different from the LAYOUT value and represents the position in the image file from which calculations may be made to establish distance to the real point of interest for patrons sitting in the seats in this section. Used in conjunction with the FOCALJDFFSET, below. Usually placed at the middle of the front edge of the section.
  • FOCAL DFFSET A value, in feet, that specifies the distance from the SECTION FOCAL_POINT to the LAYOUT
  • LEGEND_POINTS Two X/Y points defining the size and location of the reference mini-map legend in the upper left corner of the image file for this section. May be defined only on seat maps of multiple-section venues, and when clicked on, may take a user back to the top-level section map.
  • LASTJJPDATE See LAYOUT description.
  • the ROW file may describe rows within each section of this layout of the specified venue. For a venue that has no seat-level maps (e.g., a large stadium) this file may ' contain no information other than the header line.
  • a ROW file according to an embodiment may have the following format:
  • ROW_ID Unique numeric identifier for this row.
  • ROW_NUM String corresponding to row number.
  • VENUE_CODE See LAYOUT description.
  • LAYOUT_CODE See LAYOUT description.
  • SECTION_ID See SECTION description. Associates row with a particular section.
  • ADVICE_ID See SECTION description. Allows a reviewer to associate review information for an entire row of seats.
  • the SEAT file may describe seats within rows within sections of this layout of the specified venue. For a venue that has no seat-level maps (e.g., a large stadium) this file may contain no information other than the header line.
  • SEAT_ID Numeric identifier for this seat.
  • SEAT_NUM String corresponding to seat number.
  • VENUE_CODE See LAYOUT description.
  • LAYOUTJCODE See LAYOUT description.
  • SECTION_ID See SECTION description. Associates seat with a particular section.
  • ROW_ID See ROW description. Associates seat with a particular row.
  • COORD_ID Corresponds to a record in the COORD file and references the identifier associated with the circle shape record for this seat.
  • ADVICE_ID See SECTION description. Allows a reviewer to associate review information with a specific seat.
  • These text files may be transmitted from the mapping operator machine 24 to the central site 16 for import into the venue database 18 (or directly uploaded) .
  • the user's machine 10 may communicate with the central site 16 through a network connection 14, e.g., the Internet, and access information in the venue database 18 corresponding to a selected venue 12.
  • a network connection 14 e.g., the Internet
  • a screen display 1000 for an interactive section level map may be displayed when a venue 12 is selected.
  • the user may select a section, for example, by clicking on a desired section object with a pointing device, to access a seat level map corresponding to the selected section.
  • the user may access a textual description and/or photograph (s) of the venue by selecting a "venue info" button in the screen display.
  • FIG. 23 is a screen display 1002 for an interactive seat level map according to an embodiment .
  • the approximate distance and angle from the focal point may be calculated from the map scale data and displayed in an area 1008 of the screen display.
  • the user may select a seat by clicking on the associated seat object 1006 in the map with the pointing device 1004.
  • the selected seat may be marked, for example, by highlighting the border line of the seat circle, or by setting the pixels in the seat circle to a designated color or shading.
  • the user may access a textual review 1012 of the selected seat from the venue database 18, as shown in FIG. 24.
  • a “your view” 1014 button the user may ' access an image 1016 of a representative view or the actual view from the seat, as shown in FIG. 25.
  • a "seat photo” button 1018 the user may access an image 1020 of a representative seat or the actual seat, as shown in FIG. 26.
  • a “comments” button 1022 the user may access comments 1024 by other patrons who have used the selected seat or a representative seat in that section, as shown in FIG. 27.
  • the user may reserve the selected seat for an event by clicking on a "reserve” button 1026, if such reservations are available.
  • the central site 16 communicates with a ticketing service site 26 which is able to track reservations and sales of tickets for particular seats in the venue 12 for particular events.
  • a ticketing service is performed at the central site.
  • the user may purchase a ticket for the selected seat for an event by clicking on a "buy tickets” 1028 button.
  • the central site 16 communicates with the ticketing service site 26 to determine availability, and if a ticket is available, may complete the transaction by accessing funds through a financial/credit processing institution site 28 on behalf of the user.
  • the user may reserve or purchase tickets for a seat from the seat map, or any dependent screen, e.g., a view image screen (FIG. 25), seat image screen (FIG. 26), description (FIG. 24) or review screen (FIG. 27).
  • a view image screen FIG. 25
  • seat image screen FIG. 26
  • description FIG. 24
  • review screen FIG. 27
  • seats that have already been reserved or sold may be marked, for example, by placing a geometric shape, e.g., a square, of a different (or no) color in the seat circle, by highlighting the border line of the seat circle, or by setting the pixels in the seat circle to a designated color or shading.
  • a screen display is invoked that notifies the user that the seat is unavailable for that event.
  • FIG. 28 illustrates an interactive map 1100 for a restaurant.
  • the seats 1102, tables 1104, bars 1106, and sections 1108 may be made pointer-sensitive, interactive, and designated with an object identifier using the seat and section mapping operations.
  • the object identifiers may correspond to a defined or default convention. Examples of object identifiers include, for example, "Patio Area”, “Section A”, “Table 83", and "Seat 4".
  • the various objects of the interactive map may be associated with information in the venue database.
  • a User may access the interactive map from the central site 16 (FIG. 1) over the Internet 14.
  • the user may make a reservation online by selecting a desired table with a pointer device and entering reservation information including, for example, a desired date and time, and user information including, for example, a name and contact phone number or email address. This information may be checked against a reservation file in the database 18, and if available, stored as a reservation in the file. The user may be informed whether ' or not the reservation was successful with a screen display, which may include a reservation confirmation number if successful.

Abstract

A computer operation is provided to automatically compute (Fig. 1) a pixel region associated with a geometric object, or approximation of the geometric object, in a graphical image file. The pixel region may be made pointer-sensitive and automatically designated with an identifier according to a particular numbering convention. Clicking on the object calls up information with an item that object represents, for example, a particular seat in a venue (12).

Description

AUTOMATED PROCESSING OF GRAPHICAL IMAGE TO MAKE DISCREET OBJECTS POINTER-SENSITIVE
CROSS-REFERENCE TO RELATED APPLICATION
This application claims benefit of the priority of U.S. Provisional Application Serial No. 60/203,115, filed May' 8, 2000 and entitled "Automated Processing of Graphical Image to Make Discreet Objects Pointer- Sensitive. "
COPYRIGHT NOTICE PURSUANT TO 37 C.F.R. 1.71(E)
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND
A ticket purchaser may consider the quality of the view from a seat and comfort of the seat in a venue to be important criteria when purchasing a ticket for an event with assigned seating, for example, a concert or a play.
- l - Section level maps and seat level maps representative of seating arrangements in a venue may be helpful in determining the quality of the view from a seat. Such maps may be provided on an Internet site for ease of access by the ticket purchaser. However, it may be desirable to provide more detailed information about a particular desired seat from the Internet site.
SUMMARY
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
DESCRIPTION OF DRAWINGS FIG. 1 is a system for providing interactive section level maps and seat level maps for venues available to users through an Internet site.
FIG. 2 is a section level map according to an embodiment . FIG. 3 is a seat level map according to an embodiment .
FIG. 4 is a flow diagram for venue processing operation according to an embodiment. FIG. 5 is a flow diagram for a section level mapping operation according to the embodiment of FIG. 4.
FIG. 6. is a dialog box for defining the scale of a map. according to an embodiment. FIG. 7 is a dialog box for entering information about a section map according to an embodiment.
FIG. 8 is a flow diagram for a section finding operation according to the embodiment of FIG. 4.
FIG. 9 is illustration of an exemplary section contour according to an embodiment.
FIG. 10 is a flow diagram for a section mapping operation according to the embodiment of FIG. 4.
FIGS. 11A-11F are search tables for an edge follower operation in a northern direction of travel according to an embodiment.
FIGS. 12A-12F are search tables for an edge follower operation in a southern direction of travel according to an embodiment .
FIGS. 13A-13C is a flow diagram for a corner search operation according to the embodiment of FIG. 4.
FIG. 14 is a continuation of the flow diagram of FIGS. 13A-13C.
FIG. 15A-15B is a flow diagram for a seat level mapping operation according to the embodiment of FIG. 4. FIG. 16 is a dialog box for entering information about a seat map according to an embodiment.
FIG. 17 is a flow diagram for a row finding operation according to the embodiment of FIG. 4. FIG. 18 continues the flow diagram of FIG. 17.
FIG. 19 is an illustration of an exemplary row of seat objects according to an embodiment.
FIG. 20 is an illustration of another exemplary row of seat objects according to an embodiment. FIGS. 21A-21B is a flow diagram for a seat finding operation according to the embodiment of FIG. 4.
FIG. 22 is a display screen for an interactive section level map according to an embodiment.
FIG. 23 is a display screen for an interactive seat level map according to an embodiment.
FIG. 24 is a display screen including a textual review of a seat according to an embodiment.
FIG. 25 is a display screen including a view photograph according to an embodiment. FIG. 26 is a display screen including a seat photograph according to an embodiment.
FIG. 27 is a display screen including comments regarding a seat according to an embodiment. FIG. 28 is an interactive map for a restaurant according to an embodiment.
Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
FIG. 1 illustrates a system according to an embodiment for enabling a remote user 10 to access interactive maps associated with a venue 12 over a network connection 14, e.g. a World Wide Web site on the Internet. Some venues (e.g., large stadiums) may have only section level maps and seat information pages in lieu of seat level maps. Each venue 12 may have a number of seats arranged in one or more sections and may have an associated interactive section level map(s) 30, as shown in FIG. 2, and/or seat level map(s) 50 as shown in FIG. 3, representing actual sections and seats in the venue 12.
Section objects and seat objects in raw image files of the section level and seat level maps may be mapped and made pointer-sensitive. These objects may be transformed into "hotspots" on the displayed image that activate a function when selected. Information from an object mapping operation may be compiled into text files and transmitted to a central site 16 and imported into the venue database 18.
According to an embodiment, an Internet site is provided that enables a user to purchase and/or reserve a ticket for a seat in a venue directly from the interactive seat level map 50. The interactive seat level map 50 includes seat icons 52 that represent the actual arrangement of seats in the venue 12. By selecting a seat icon 52 in the seat level map 50 with a pointing device, the user may be provided information regarding a particular seat that includes, for example, the distance of the seat from the stage 54, a viewing angle 56 to the stage from the seat, an image representative of the actual view from the seat, an image representative of the actual seat, ratings and/or reviews of the view and sound quality from the seat and the comfort of the seat. In addition, the user may purchase a ticket for that seat directly from the Internet site. According to an embodiment, an operation is provided to automatically compute the pixel region associated with each section icon 32 (FIG. 2) or seat icon 52 in an associated section level map or seat level map, respectively. Information regarding the section and seat to be entered into the database may be obtained by venue surveyors at the venue 12. Information relating to the accuracy of the graphical image files from which the interactive maps are created may also be acquired at the venue 12. This information may include, for example, distances between rows, aisles, and sections, distances between the seats and a focal point of the stage, the height of elevated sections, the convention used to identify rows, aisles, and sections, the locations of obstructions, exits, and designated seats and access ramps for the disabled.
The focal point of the stage may be any "point of interest" in the venue as defined by the surveyor. For example, this may be center stage or a point at the center of the front edge of the stage.
Examples of conventions used to identify seats and/or sections and rows include, for example, alphabetic
(A ->■ B, AA - BB) , numeric (1 -» 2) , or a combination of
both (Al → A2) .
Other information that may be associated with particular seats in the database include photographs and textual descriptions. A photograph of each seat, or a seat representative of those in a particular group of seats, may be taken and converted to a digital image stored in the database. A photograph of an actual view from each seat, or a seat having a view representative of a particular group of seats, may be taken and converted to a digital image stored in the database. An object may be placed on the stage, for example, a life-size cut-out of a human figure, to provide a better perspective of the viewing distance and angle from a particular seat. The visit to the venue may provide a basis for textual descriptions and reviews of particular seats to be entered into the venue database 18.
Some venues may have different seating arrangements for different events. For example, a venue that hosts concerts, plays, sporting events, and special functions may have different seating arrangements for each type of event. Information for creating appropriate section level maps and seat level maps may all be obtained at the visit to the venue.
The venue surveyors may import the venue information into the venue database 18 remotely from a venue surveyor machine 20. The venue surveyor machine 20 may be a general purpose computer in communication with the central site 16 through a network connection. The venue surveyor may also enter reviews of the particular section or seats provided by other patrons who have seen an event from a particular seat.
Each venue may have had an associated section level map 30, (FIG. 2), and/or one or more associated seat level map 50, (FIG. 3) . A particular venue may have more of each type of map depending on the number of sections and seating arrangements compiled for that venue. The section level and seat level maps may be in a digital graphical image file, for example, a GIF or JPEG format, or other known or currently unknown but contemplated future file formats for graphical images. Each map is drawn roughly to scale and may be of varying detail.
A mapping operator performs mapping operations on the raw image files of the section level and seat level maps according to various embodiments described below.
The instructions for performing the mapping operation may reside in a memory or machine readable medium, e.g., a CD-ROM 22 residing in a mapping machine 24.
The mapping machine 24 may be a general purpose computer in connection with the central site 16 through a network connection. The instructions for performing the mapping- operations may be in the JAVA programming language. JAVA is an object oriented language that is advantageously platform-independent and may run on any machine utilizing a JAVA Virtual Machine. However, the instructions may be implemented in hardware and/or in software using a number of different interpreters or compilers and programming languages. FIG. 4 illustrates the flow of a map processing operation for a venue according to an embodiment. The production map files, i.e., the raw graphical image files, for a venue are stored in a venue file in state 100. A venue map file for the venue is opened in state 102. Maps determined to be section level maps in state 104 are processed in state 108 using a mapping operation described below in connection with FIGS. 5 to 14. Maps determined to be seat level maps in state 104 are processed in state 106 using a mapping operation described below in connection with FIGS. 15 to 21. When it is determined in state 110 that all maps for the' venue have been processed, the processed maps in the dataset corresponding to the venue may be saved to disk in state 112 for subsequent import to database or directly upload to a database on a server on a network, at which point the operation may be terminated in state 114.
Returning to FIG. 2, the section level map 30 illustrates a general outline, or contour, of the various sections 32, 34, 36 and their relation to a stage 54. Each section that includes assigned seating, e.g., "First Balcony" 34 and "Main Floor" 32, may be pointer- sensitive .
The operator may use the section mapping operations according to an embodiment described in connection with FIG. 5 to compute the coordinates of the pixels that lie inside a section contour. Once these pixels are determined, they may be made pointer-sensitive and associated with information regarding that particular section in the venue database 18.
In the original image file for the section level map, each section icon may be represented as a blank region including white, "off", pixels defined by a boundary line having black, "on", pixels. Generally, the section mapping operation begins with the operator selecting a point inside a particular section, from which the operation travels in a defined or default direction until it encounters an "on" pixel in the boundary line. The operation then travels along other "on" pixels in the border line until all pixels on a contour, e.g., an inner contour, of this border line is determined. From these points, corner points are chosen which define a polygon that approximates the shape of the section object. All pixels in an area defined by that polygon are made pointer-sensitive and associated with information relating to the particular section in the database.
It may not be necessary or desirable to achieve a perfect fit between the polygon and the border line. Accordingly, the polygon may be a rough approximation generated automatically by the mapping operation or defined manually by operator-selected corner points. Approximating the polygon to the borderline may advantageously conserve storage space by limiting the number of points that must be stored to define the contour.. This may be significant for section contours having curved borders and/or complex geometries .
When a raw graphical image file is selected from the venue file for mapping, a "define scale" dialog box 250, such as that shown in FIG. 6, may be displayed. As shown in FIG. 5, the operator may be prompted to define an image dots per inch ("DPI") value in field 252, a map scale value in field 254, deselect the "seat map" check box 256, and set a focal offset value to "0" in field 258 in state 200. An exemplary DPI value for a GIF image file according to an embodiment is seventy-two (72) .
The operator may define the focal point of the map with a pointer device in state 202. As described above, the focal point may be a point at or near center stage or a point at or near the center of the front edge of the stage. The focal point may be different for different events. For example, the focal point may be any point of interest in a venue and may lie on the 50-yard line for a football layout, half-court for a basketball layout, or home plate for a baseball layout.
When the operator selects a "define section" command in state 204, the operator may designate a section survey point inside the selected section contour, e.g., Main Floor 32, using the pointer device. If the operator decides to define the designated section manually in state 208, the operator may trace a simplified section outline on or around the section contour in the image file with pointer picks in state 210 and close the contour in state 212.
When the operator selects a "find object" command in state 214, the operator may be prompted to provide information related to that particular section in a "map section" dialog box 270, as shown in FIG. 7. The "map section" dialog box 270 has data entry fields that may include, for example, venue code 272, layout code 274, level 276, tier 278, section 280, and section number 282. The layout code corresponds to a particular type of seating arrangement typical to a type of performance, for example, a theater, play, or concert layout.
The venue code uniquely identifies a venue. The venue code is the same for every layout of a venue.
The level, tier, section, and section number may all be alphanumeric strings corresponding to a label identifying the respective seating area.
According to the present embodiment, at least the layout code and venue code are filled in for the first section in state 220. For subsequent sections, the level, tier, section, and section number fields may be modified in state 222 if appropriate.
After identifying the section, a section finding operation, described below in connection with FIG. 8, may be carried out in state 224 to define a section polygon corresponding to the section contour in the image file. If more sections are determined to remain in the venue in state 226, the operation may return to state 202. Otherwise, the section finding operation may terminate in state 228.
As shown in FIG. 8, the section finding operation passes in the x, y coordinates of a survey point and a defined or default maximum width value at state 300. If the section contour is determined to be manually traced in state 302, the polygon may be defined by the manually entered trace points in state 304. Otherwise a section mapping operation may be initiated in state 306 to determine a number of corner points that define the polygon. An embodiment of the section mapping operation is described below in connection with FIGS. 8-14.
When the polygon is defined, extraneous points such as the section survey point and manual outline may be erased in state 308. The mapped section object defined by the polygon may be added to the venue record in state 310. The section number may be automatically advanced for a subsequent section finding operation in state 312. As shown in FIG. 9, the automatic section mapping operation according to an embodiment generally follows an inside contour 350 of a section object 352 and identifies a number of corner points 354 determined by their degree of deviation from a line or line-like segment 356 being traced between successive points. These corners 354 may be used, to define a section polygon 358 approximating the section object 352 in the raw image file.
To initiate the section mapping, the operator may select a section survey point 360 by clicking on or otherwise selecting a pixel within the contour of the unmapped section object 352. From the survey point 360, pixels may be scanned in a defined or default direction 362 until an "on" pixel is encountered.
A pixel may be a considered a corner candidate if subsequent pixels on the border deviate from the line 356 being traced. Several mapping options having defined or default values may be used to determine a significant deviation.
The section mapping operation may be iterative. On a first edge following operation, a raw list of the coordinates of "on" pixels found on the inner contour may be stored in a mapping database. These points may then be evaluated in one or more operations based on mapping criteria to determine those "on" pixels that deviate significantly from the line and store these "on" pixels as corner point candidates. Corner points to be used in the polygon 358 may be determined from these corner point candidates in subsequent operations based on mapping criteria. The mapping criteria may include defined or default mapping options available to the operator.
A maximum deviation option may be used to monitor
the number of increasing deviations from an angle φ from the line 356 after which the pixel point 364 preceding the. first point-of-deviation 366 is considered a corner point. The maximum deviation option may be used to detect corner points in a raw list of section outline points obtained in a first iteration of the edge following operation. An exemplary default value is three (3) deviations.
A slope tolerance option may be used to monitor a percentage change between a slope ml and a slope m2 at which two points are considered to be on different lines. The slope tolerance option may be used to remove redundant points in a section contour in a later iteration to identify corner points used in the polygon. An exemplary default value is twelve percent (12%) .
A line tolerance option may be used to monitor the minimum number of degrees of deviation angle must differ from the current vector in order to be considered a valid deviation.
. A collapse point option may be used to set a sampling interval to determine how many pixels apart two points on a section contour must be in order for both to be considered valid corner point candidates. Points less than this number apart may be removed from consideration. This may advantageously reduce the number of points stored in the database for the section polygon. As shown in FIG. 10, the section mapping operation operates on the coordinates of the section survey point and the maximum width value which may be passed into the program at state 400. Starting at the survey point coordinates, pixels may be scanned in a defined or default direction until an "on" pixel, representing an edge of the section contour, is encountered in state 402. An exemplary scan direction 362 (FIG. 9) is westward. If the survey point is determined to be outside of the section object in state 404, an error value may be returned in state 406. Otherwise the coordinates of a start point may be set to the coordinates of the found "on" pixel in state 408.
According to an embodiment, all pixels defining the inner contour of the section object 352 are identified using an edge follower operation, examples of which are described in FIGs. 11A-F and 12A-F. The exemplary edge follower may examine pixels adjacent to the current pixel 450 based on a protocol corresponding to a current direction of travel. The current direction of travel may be determined by the orientation of a previous pixel 452 to the current pixel 450, or may be a defined or default direction for the starting pixel. The exemplary search tables shown in FIGs 11A-11F correspond to a clockwise search of an inner contour in a northern direction of travel.
FIGs 11A-F describe a search table for the northern direction of travel in descending level of priority. That is, FIG 11A illustrates the first search pixel search operation attempted and FIG. 11F the last. FIGs 12A-F describe a similar protocol, but for a southern direction of travel in a clockwise search.
Lines that define the contour of an object may be more than one pixel deep. To prevent the edge follower from traveling into the line defining the contour, the edge follower may search for an "off" pixel 454 adjacent to a found "on" pixel 456. This ensures that the edge follower remains on the edge of the contour. The section object in the image file may be considered a "blob." Regardless of its shape, the blob may be contained in a bounding box. The bounding box may be a rectangle that contains the blob and is defined by the minimum and maximum x- and y-coordinates of the blob. The bounding box may be used to determine a maximum width of the section object 352 (FIG. 9) .
Starting with the coordinates of a start pixel 368, the minimum and maximum x, y values may be stored to track the shape of the bounding box in state 410 (FIG.
10) .
If the current shape width is determined to be greater than the maximum width in state 412, an error value may be returned. Otherwise a next "on" pixel in the contour is searched based on the search table for the current direction of travel in state 414.
If no next "on" pixel is identified, an error value may be returned. Otherwise the coordinates of the next "on" pixel are compared to the coordinates of the start pixel. If the coordinates are determined to be different in state 420, the operation may return to state 410.
Otherwise a corner search operation may be initiated in state 500, as shown in FIGS. 13A-C. According to the present embodiment, upon initiation of the corner search process, an "Index" value may be set to "2", a Boolean "last_pass" value is set to FALSE, the coordinates of a "Point_l" set to the coordinates of a first point in the section outline, the coordinates of a "Point_2" set to the coordinates of a second point in the section outline, and the coordinates of a first corner set to the coordinates of "Point_l" in state 500. A "Vector_a" value may be set to the value of
"(Point_2 - Point_l)" at state 502. The value of "Index" is inspected in state 504. The state in which "Index" equals the number of points in the section outline corresponds to a completed edge following operation about the inner contour of the section object. If "Index" is determined not be less than the number of points in the section outline in state 504, points from a list of corners that, within a specified tolerance, are not on the same line may be removed from the list in state 542, as shown in FIG. 14. Points for the list that are 'closer together than a specified number of pixels may also be removed from the list in state 544. The list including corner points 354 may be returned to define the section polygon in state 546. If the "Index" is determined to be less than the number of points in the section outline in state 504, "Point_2" is set to a value "Outline [Index]" in state 506. If "Point_2" is determined to be equal to the stored "first corner", the operation may return to state 542 (FIG. 14) . Otherwise, a- "Vector_b" is set to the value " (Point_2 - Point_l)" in state 510.
An angle α may be calculated between "Vector_a" and "Vector_b" at each iteration of the corner search
operation and stored. If angle α is determined not to be increasing in state 512, "Index" is incremented by "1" in state 514. If "Index" is determined to be greater than or equal to the number of points in the outline in state 516> "Index" may be set to "0" and the value of "last_pass" set to "true" in state 518 and the operation may return to state 502.
If "Index" is determined to be less than the number of outline points, the operation may return to state 502.
If angle α is determined to be increasing at state 512, "Outline [Index-1] " may be saved as a corner candidate at state 520 if it constitutes a first deviation.
If angle α is determined to have increased a requisite number of times and is greater than a minimum tolerance in state 522, "Point_l" may be selected as a corner candidate and added to the list of corner points for the polygon in state 524. "Point_l" may be set to a "Corner" value and "Point_2" set to a "(Corner + 1) " value in state 526. The operation may then return to state 502. If angle α is determined to have not increased the requisite number of times in state 528, "Index" may be set to "(Index + 1 ) " in state 530. If "Index" is determined to be greater than or equal to the number of outline points in state 532, "Index" may be set to "0" and "last_pass" set to "true" in state 534. The operation may then return to state 504.
If "Index" is determined to be less than the number of outline points in state 532, the operation may return to state 504.
If the number of deviations is determined not to be less than the requisite number of deviations in state 528 and angle α is determined not to be less than the required deviation in state 538, then the operation may return to state 502. Otherwise, the value of "last_pass" is inspected in state 540. If "last_pass" is "true", the operation may return to state 542 (FIG. 14) . Otherwise, "Index" is set to a value "(Corner + 1) " and "Point_2" set to "Outline [Index] " at state 536. The operation may then return to state 514.
As described above, the list of corner points for a section polygon used to describe a section contour may be returned in state 546. This section contour may be mapped on the image of the section object in the image file. Pixels in the region defined by the section polygon may be made pointer-sensitive. The area of the section polygon may act as a "hotspot" which activates a function when selected. Pixels in the area defined by the section polygon may be associated with seat level maps corresponding to the section or the seat information page and other information relating to the particular section in the database.
FIGS. 15A-B illustrate a flowchart describing the mapping of a seat level map 50 according to an embodiment. FIG. 3 illustrates a seat level map according to an embodiment . The seat level map includes the general outline of the section with seat icons 52 representing the seating arrangement for a particular layout at the venue 12. The seat icons 52 are arranged in rows and the map may indicate row and seat designations. The seat map may include unreservable areas such as the stage, control booth area, sound station, and press area. The seat map may also show the locations of exits and designated seating for the disabled.
According to the present embodiment, in an unmapped seat map, the seat icons are empty (white) regions bordered by a non-white, generally circular line. Once mapped, the seat circles may be marked by setting the pixels in the circle to a particular color. Although described as circles, the actual seat objects may have other geometric shapes, such as polygonal. When the unmapped image file is opened, the "define scale" dialog box 270 (FIG. 6) may be displayed. The operator may be prompted to set DPI, map scale, focal point, and focal offset at state 600. The operator identifies the map as a seat map by checking the "seat map" checkbox 256.
The operator may set mapping and crawling options in state 602.
An exemplary mapping option is a maximum seat points option which sets the maximum circumference of a seat circle in pixels. This may prevent runaway contour following, for example, in the case of a broken circle. An exemplary default value for this option is fifty (50) pixels. An exemplary crawling option is an automatic row advance which determines whether a row number or letter should stay the same or advance automatically with each mapped row.
A window may be provided to show pointer distance and angle from the focal point of the current seat, when mapped, under the pointer icon at 604.
To begin mapping a row of seat circles, the operator may select a "define row" command at 606. Using the pointer device, the operator may select a row by clicking on the first seat and last seat of the row to be mapped at 608. Aisles may be identified by associating a "jump aisle" flag with the last seat in a row section adjacent an aisle. According to an embodiment, the "jump aisle" flag may be set by clicking on the last seat in the row section, and while holding a particular key, e.g., the "shift" key, clicking on the first seat in the row section across the aisle. Consider the selection of row D in FIG. 3. For a left to right (west-east) mapping operation, the operator first clicks on seat (icon) D28, then clicks on seat D2. With the shift key depressed, the operator clicks on seat D101 and releases the shift key. The operator clicks on seat D114. With the shift key depressed, the operator clicks on seat Dl and releases the shift key. The operator then clicks on seat D27 to complete the selection of row D.
The operator may select a "find objects" command at 610. As shown in FIG 16, a "map seats" dialog box 650 may be displayed to prompt the operator to enter information relating to the seats at state 612. If the row being mapped is the first in the seat map at state 614, the operator may be prompted to enter the venue code and layout code for the seat map. If the row being mapped is not the first row map, at 618, the operator may be prompted to enter in the appropriate field the section level 656, tier name 658, section name 660, and/or section number 662. The dialog box 650 may also include fields for entering row number 664, a first seat number 666, and a seat increment value 668.
A row finding operation, described below in connection with FIGs. 17 and 18, may be carried out at state 622. If the mapped row is determined not to be the final row in the seat map at state 624, the operation may return to state 608 to map the next row. If the mapped row is the final row, the seat mapping operation may terminate at state 626.
FIGS. 17A-B illustrate a flow chart describing a row finding operation according to an embodiment. The starting seat designation and increment value may be entered by the operator or preserved from a previous row mapping operation.
At state 702, an "Index" value is set to "0" and an "nPoints" value is set to the number of points in the row survey polyline, e.g., six (6) for the exemplary operation on row D described above in connection with FIG. 3, where two points were selected for each row section. The "Index" value is compared to the value " (nPoints-1) " at state 704. If "Index" equals " (nPoints- 1)", which may occur when the last row section has been mapped, the mapped row may be added to the venue record and the row number may be automatically advanced at state 706, and the row finding operation may be terminated at state 708.
If "Index" is determined to be less than " (nPoints- 1)" at state 704, a "Point_l" is defined as "Polyline [Index] " and a "Point_2" may be set to a value "Polyline [Index+1]" at state 710.
If it is determined that Point_2 has an associated "jump aisle" flag at state 712, "Index" may be incremented "1" at state 714 and the operation may return to state 704.
The pixel coordinates of a current "Point_l" may be compared to a current "Point_2" at state 716 to determine whether the row scan direction is from left-to-right (eastward) or right-to-left (westward) . A seat finding operation in the row may be carried out using "Point_l" as a starting point and the row scan direction at state 718. The seat finding operation may be used to find the seat contour from a start point inside the seat circle, trace "on" pixels on the inner contour of the seat circle, and from the "on" pixel coordinates, determine a center point and a maximum diameter 2R for the seat circle.
Once the seat circle is mapped, the seat information may be added to the current row, the seat number incremented a defined or default value, and the maximum diameter 2R of the seat circle stored at state 722.
As shown in FIG 19, the row finding operation may be used to determine a new starting point 850 for the for the seat finding operation on an adjacent seat circle 852 after the first seat circle 854 has been mapped, and continue this operation until all seats in the row 856 have been mapped. Assuming all of the seat circles in the row have approximately the same diameter, and that the row does not have an excessive curvature, a reasonable approximation for the center point 858 of an adjacent circle 852 may be found by extending a line 860 having a length equal to the diameter of the first circle from the center point of the first circle in the scanning direction along the slope of the line extending between "Point_l" 862 and "Point_2" 864 which lie in the first 854 and last seats 866 of the row, respectively.
A slope m may be determined from the x, y coordinates (xl, yl, x2, y2) of "Point_l" and "Point_2," respectively. From slope m, an angle θ of a right
triangle may be determined. The values of m and θ may be
determined, for example, using the Java code segments:
(1) double slope= (double) (p2.p. y-pl .p. y) / (double) (p2.p. x- pi .p.x) ; and
(2) double angle = Math. atan (slope) .
Using maximum diameter 2R as the hypotenuse A of a
right triangle of angle θ, remaining orthogonal sides B
and C may be determined, for example, using Java code segments:
(1) int A = seat .diameter;
(2) int B = (int) ( (double) A * Math. sin (angle) + 0.5); and
(3) int C = (int) ( (double) A * Math. cos (angle) + 0.5). According to an embodiment, the "0.5" value is added to the round up to the next pixel.
FIG. 18 continues the flow diagram for FIG. 17. If slope m is determined to be undefined, i.e., vertical, at state 760, the hypotenuse A is added or subtracted, depending on the direction of travel (north-south or south-north) , to the y coordinate of the seat center point to get the next search point at state 762. A seat finding operation may be performed using this new search point at 764. If slope m is determined to have a value, rather than being undefined, at state 760, the C and B values of the right triangle are added to seat center point x and y, respectively, to get the next search point at state 766. A seat finding operation may be performed using this new search point at state 764.
Using data from the seat finding operation, the seat is added to the current row, the seat number is incremented by the defined or default increment value, and the maximum diameter 2R of the current seat saved at 768.
If it is determined in state 770 that the seat contains the last point of the row segment, e.g., seat D27 in the exemplary row selection described above in connection with FIG. 3, the seat search may be ended for this row at state 750 (FIG. 17A) . The row of seats may be added to the venue record, and row number advanced at state 706, and the row finding operation may be terminated at state 708. If it is determined at state 770 that the seat does not contain the end point of the row segment, the next search point is determined using the coordinates of the center point of the current seat. If the row has a large curvature, as shown in FIG. 20, it may be advantageous for the operator to select several seat points 870 in objects in a row 872 to be used as reference points "Point_l" and Point_2". This operation effectively defines "sub rows" 874 with section lines having slopes that more accurately represent the immediate slope of the curvature of the row.
FIGS. 21A-B illustrate a flow diagram describing the seat finding operation. The seat finding operation passes in the values of the x, y coordinates of the starting point, the scan direction, and the defined or default maximum width in state 800. The scan direction may be determined in state 802. Starting from start point coordinates xO, yO, pixels may be scanned eastward or westward in 804 and 806, respectively, until an "on" pixel is located to determine an edge of the image. If the scan reaches an edge of the seat map without encountering an "on" pixel, an error value may be returned in state 810. This may occur in the case where the start point was selected outside of a seat circle in state 808.
The first "on" pixel may be used to set the starting x, y coordinates for an edge follower operation such as that described above in connection with FIGs. 11 and 12. Starting with the start point coordinates, minimum and maximum points may be stored to track the shape of a bounding box for the seat circle at state 814. These min/max points may be used to determine whether the shape width exceeds the defined or default maximum width at state 816. If so, an error value may be returned at state 810.
If no adjacent "on" pixel is found in state 820, an error value may be returned in state 810. This may occur in the case of searching an object with an open contour. If the next adjacent "on" pixel is located, the current x, y coordinate is set to that of the next "on" pixel .
The x, y coordinates of the current pixel may be compared to that of the start pixel in state 824. If the current pixel is not the start pixel, the operation may return to state 814.
If the current pixel equals the start pixel, it is assumed that the entire contour has been mapped. Using the stored min/max values, a bounding box 880 (FIG. 19) may be calculated that contains the seat object. Although the seat icon may have a geometric shape other than a circle, the radius R for a seat circle representing the seat icon may be returned in state 826. The radius R is one-half the width of the bounding box 880. The coordinates of the center point of the seat circle may be set to the center of the bounding box 880 in state 826. These values may be returned in state 828. The data obtained from the mapping operations on the image files for the section level and seat level maps corresponding to a particular venue may then be transcribed to a number of text files for transport- into the database or directly uploaded. According to the present embodiment, these text files may include: a LAYOUT file; a COORD file; a SECTION file; a ROW file; and a SEAT file.
The LAYOUT file may contain basic information about a particular layout of a venue. There may be one or more layouts for a venue.
A LAYOUT file according to an embodiment may have the following format:
LAYOUT_CODE | VENUE_CODE | IMAGE_FILE | IMAGE_WIDTH | IMAGE_HEIGH T | NUM_SEATS | NUM_SECTIONS | SCALE | DPI | F0CAL_P0INT | LAST_UPDAT E
16 | 167 | labovard_exploded . gif | 359 | 371 | 1161 | 2 | 0 . 002684 | 72 | 2 34 , 260 1 10 /22/99 .
LAYOUT_CODE : Code corresponding to layout (e . g . 16 (Theatre ) , 5 ( Play) , 8 (Concert ) , etc . ) VENUE_CODE : Code that uniquely identifies a venue.
Same for every layout of a venue.
IMAGE_FILE : Name of image file that contains the top- level map, which may be a section-level or seat-level map, depending on the size and configuration of the venue .
IMAGE_WIDTH : Width of the image file, in pixels.
IMAGE_HEIGHT : Height of the image file, in pixels.
NUM_SEATS : Number of seats total in this layout of the venue.
NUM_SECTIONS : Number of sections total in this layout of the venue. This value may be "1" for a venue that does not distinguish different sections.
SCALE : Scale used in drawing the image file entered by the operator.
DPI : Dots per inch of the image file.
FOCAL_POINT : An X/Y position defining the "point of interest" within the image file.
The COORD file may contain geometric coordinates describing the outlines of sections and the center pόint/diameter of seats found within the image files that contain the various maps of the venue layout.
A COORD file according to an embodiment may have the following format: COORD_ID I COORD_TYPE | COORD_DATA| VENUE_CODE
1121178,200, 10,277, 199, 218, 140, 160, 160, 108, 198, 71, 163, 51, 178,140,267,169,276,221,241,277,224|167 2|1|12, 261, 6271167 3|1J12,274, 6271167 411| 12, 286, 6251167
COORD_ID : Identifier for this shape instance.
COORD_TYPE : Qualifier describing the type of shape contained in the record.
COORD_DATA : The points/dimensions making up the shape in this record.
VENUE_CODE : Venue code to make the association between these shapes and a certain venue. See description in LAYOUT file, above.
The SECTION file may describe sections within this layout of the specified venue. For a venue that makes no section distinction, this file may contain the header line and one additional line/record describing the whole venue as a "section".
A SECTION file according to an embodiment may have the following format:
SECTION_ID | SECTION_LEVEL | SECTION TIER | SECTION | SECTION_NUM I VENUEJCODE | LAYOUT_CODE | COORD_ID |ADVICE_ID I SEATPHOTO_ID | V IEWPHOTO_ID | IMAGE_FILE | IMAGE_WIDTH | IMAGE_HEIGHT | ELEVATION
1 SCALE | DPI | FOCAL_POINT | FOCAL_OFFSET | LEGEND_POINTS | LAST_UP DATE
1| Main Floor | ] | | 167 | 16 | 1 | -1 | -1 ] -
11 labovard_floor . gif I 680 | 86110 | 0.009660 | 72 | 342 , 763 | 0 | 8 , 10
,128,129110/22/99.
2 I First' Balcony I | | | 167 | 16 | 770 | -11 -11 - lllabovard_balc.gif | 674 | 582 | 0 | 0.009660 | 72 | 335, 468 | 36 | 6,7, 126,126110/22/99.
SECTION_ID : Unique numeric identifier for this section.
SECTION_LEVEL : String corresponding to section level name, if any.
SECTION_TIER : String corresponding to section tier name, if any.
SECTION : String corresponding to section name, if any.
SECTION_NUM String corresponding to section number, if any. VENUE_CODE See LAYOUT description. LAYOUT_CODE See LAYOUT description. COORD ID Corresponds to a record in the COORD file and references the identifier associated with polygonal shape record for this section. ADVICE ID Defined later during a review input process .
SEATPHOTO_ID : Defined later during a review input process . VIEWPHOTO_ID : Defined later during a review input process .
IMAGE_FILE : Name of image file that contains the map associated with this section, if any. If this is a one/no-section venue, this field will be empty, and the LAYOUT table will contain the top-level image map name. IMAGE_WIDTH : Width of the image file, in pixels. IMAGE_HEIGHT : Height of the image file, in pixels. ELEVATION : Height from the floor to the front edge of the section. SCALE : See LAYOUT description.
DPI : See LAYOUT description.
FOCAL_POINT : May be slightly different from the LAYOUT value and represents the position in the image file from which calculations may be made to establish distance to the real point of interest for patrons sitting in the seats in this section. Used in conjunction with the FOCALJDFFSET, below. Usually placed at the middle of the front edge of the section. FOCAL DFFSET : A value, in feet, that specifies the distance from the SECTION FOCAL_POINT to the LAYOUT
FOCAL_POINT .
LEGEND_POINTS : Two X/Y points defining the size and location of the reference mini-map legend in the upper left corner of the image file for this section. May be defined only on seat maps of multiple-section venues, and when clicked on, may take a user back to the top-level section map. LASTJJPDATE : See LAYOUT description.
The ROW file may describe rows within each section of this layout of the specified venue. For a venue that has no seat-level maps (e.g., a large stadium) this file may' contain no information other than the header line. A ROW file according to an embodiment may have the following format:
ROW_ID | ROW_NUM | VENUE_CODE | LAYOUT_CODE | SECTION_ID |ADVICE_I
D | SEATPHOTO_ID | VIEWPHOTO_ID | LAST_UPDATE
11 A| 167 | 16| 11 -11 -11 - 110/22/99 2 |B| 167 I 16| 1| -II -II -1110/22/99
3 |C| 167 I 16| 1| -1| -1| -1110/22/99 etc.
ROW_ID : Unique numeric identifier for this row.
ROW_NUM : String corresponding to row number. VENUE_CODE : See LAYOUT description.
LAYOUT_CODE : See LAYOUT description.
SECTION_ID : See SECTION description. Associates row with a particular section. ADVICE_ID : See SECTION description. Allows a reviewer to associate review information for an entire row of seats.
SEATPHOTO_ID : See SECTION description.
VIEWPHOTO_ID : See SECTION description. LAST_UPDATE : See LAYOUT description.
The SEAT file may describe seats within rows within sections of this layout of the specified venue. For a venue that has no seat-level maps (e.g., a large stadium) this file may contain no information other than the header line.
SEAT_ID | SEAT_NUM | VENUE_CODE | LAYOUT_CODE | SECTION_ID | ROW_ID | COORD_ID |ADVICE_ID | SEATPH0T0_ID |VIEWPHOTO_ID | LAST JPDATE
111011167116111112 I -11 -11 -1110/22/99
211021167116 I 11113 I -11 -11 -1110/22/99 311031167116 | 11114 | -11 -11 -1110/22/99 etc.
SEAT_ID : Numeric identifier for this seat.
SEAT_NUM : String corresponding to seat number.
VENUE_CODE : See LAYOUT description. LAYOUTJCODE : See LAYOUT description.
SECTION_ID : See SECTION description. Associates seat with a particular section.
ROW_ID : See ROW description. Associates seat with a particular row.
COORD_ID : Corresponds to a record in the COORD file and references the identifier associated with the circle shape record for this seat.
ADVICE_ID : See SECTION description. Allows a reviewer to associate review information with a specific seat.
SEATPHOTO_ID : See SECTION description.
VIEWPHOTO_ID : See SECTION description.
LAST_UPDATE : See LAYOUT description.
These text files may be transmitted from the mapping operator machine 24 to the central site 16 for import into the venue database 18 (or directly uploaded) .
Returning to FIG. 1, the user's machine 10, e.g., a general purpose computer, may communicate with the central site 16 through a network connection 14, e.g., the Internet, and access information in the venue database 18 corresponding to a selected venue 12.
According to an embodiment, a screen display 1000 for an interactive section level map, shown in FIG. 22, may be displayed when a venue 12 is selected. The user may select a section, for example, by clicking on a desired section object with a pointing device, to access a seat level map corresponding to the selected section. The user may access a textual description and/or photograph (s) of the venue by selecting a "venue info" button in the screen display.
FIG. 23 is a screen display 1002 for an interactive seat level map according to an embodiment . As the user moves a pointer icon 1004 over seat objects 1006 in the seat level map, the approximate distance and angle from the focal point may be calculated from the map scale data and displayed in an area 1008 of the screen display.
' The user may select a seat by clicking on the associated seat object 1006 in the map with the pointing device 1004. The selected seat may be marked, for example, by highlighting the border line of the seat circle, or by setting the pixels in the seat circle to a designated color or shading.
By clicking a "review" button 1010 in the screen display, the user may access a textual review 1012 of the selected seat from the venue database 18, as shown in FIG. 24. By clicking a "your view" 1014 button, the user may' access an image 1016 of a representative view or the actual view from the seat, as shown in FIG. 25. By clicking on a "seat photo" button 1018, the user may access an image 1020 of a representative seat or the actual seat, as shown in FIG. 26. By clicking on a "comments" button 1022, the user may access comments 1024 by other patrons who have used the selected seat or a representative seat in that section, as shown in FIG. 27. The user may reserve the selected seat for an event by clicking on a "reserve" button 1026, if such reservations are available. The central site 16 communicates with a ticketing service site 26 which is able to track reservations and sales of tickets for particular seats in the venue 12 for particular events. According to an alternate embodiment, a ticketing service is performed at the central site. The user may purchase a ticket for the selected seat for an event by clicking on a "buy tickets" 1028 button. The central site 16 communicates with the ticketing service site 26 to determine availability, and if a ticket is available, may complete the transaction by accessing funds through a financial/credit processing institution site 28 on behalf of the user.
The user may reserve or purchase tickets for a seat from the seat map, or any dependent screen, e.g., a view image screen (FIG. 25), seat image screen (FIG. 26), description (FIG. 24) or review screen (FIG. 27).
According to an embodiment, seats that have already been reserved or sold may be marked, for example, by placing a geometric shape, e.g., a square, of a different (or no) color in the seat circle, by highlighting the border line of the seat circle, or by setting the pixels in the seat circle to a designated color or shading. According to another embodiment, a screen display is invoked that notifies the user that the seat is unavailable for that event.
According to alternate embodiments, maps for other environments in which seats may be assigned and reserved may be made interactive. FIG. 28 illustrates an interactive map 1100 for a restaurant. The seats 1102, tables 1104, bars 1106, and sections 1108 may be made pointer-sensitive, interactive, and designated with an object identifier using the seat and section mapping operations. The object identifiers may correspond to a defined or default convention. Examples of object identifiers include, for example, "Patio Area", "Section A", "Table 83", and "Seat 4". The various objects of the interactive map may be associated with information in the venue database. A User may access the interactive map from the central site 16 (FIG. 1) over the Internet 14. The user may make a reservation online by selecting a desired table with a pointer device and entering reservation information including, for example, a desired date and time, and user information including, for example, a name and contact phone number or email address. This information may be checked against a reservation file in the database 18, and if available, stored as a reservation in the file. The user may be informed whether' or not the reservation was successful with a screen display, which may include a reservation confirmation number if successful.
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.

Claims

WHAT IS CLAIMED IS:
1. A method for determining coordinates of pixels in an edge contour of an object in an image file, said method comprising: determining the coordinates of a first pixel in the edge contour; examining pixels adjacent the first pixel in a first direction according to a first protocol associated with the first direction; locating the second pixel in the edge contour adjacent said first pixel; determining a second direction of travel in response to an orientation of the second pixel to the first pixel; and examining pixels adjacent the second pixel in the second direction according to a second protocol associated with the second direction.
2. The method of claim 1 wherein the edge contour is an inner contour.
3. The method of claim 1, wherein examining pixels adjacent the first pixel comprises identifying a first adjacent pixel in the edge contour and a second adjacent pixel outside the edge contour.
4. The method of claim 1 wherein the object comprises a plurality of pixels in an x, y coordinate system.
5. The method of claim 4 further comprising: determining a plurality of pixels in the edge contour; storing the x, y coordinates of said pixels in. the edge contour; identifying a minimum x-coordinate, a maximum x- coordinate, a minimum y-coordinate, and a maximum y- coordinate from said stored x, y coordinates; and generating a rectangle from said minimum and maximum x- and y-coordinates .
6. The method of claim 5 further comprising: determining a center point of the rectangle; and determining a maximum width of the rectangle.
7. The method of claim 6 further comprising: defining a circle having a diameter approximately equal to said maximum width and approximately centered on said center point of the rectangle.
8. The method of claim 7 further comprising making pixels in the area defined by the circle pointer- sensitive.
9. The method of claim 7 wherein said object comprises one of a plurality of objects, said method further comprising associating a designation to the circle associated with said object based on a defined convention.
10. The method of claim 9 further comprising: storing said designation; storing a plurality of pixel coordinates in said circle; and associating said stored designation with said stored pixel coordinates.
11. The method of claim 1 wherein the object represents a seat in a venue.
12. The method of claim 11 further comprising associating a designation to a row comprising a plurality of seats based on a defined convention.
13. A method for determining objects in a row in an image file comprising: selecting a first point in a first end object in the row; selecting a second point in a second end object in the row; determining a slope between said first and second end objects; generating a seat circle corresponding to said first seat object, said seat circle having a center point and a diameter and at least partially overlapping said first seat object.
14. The method of claim 13, wherein the row comprises a plurality of row segments, and wherein one of said plurality of row segments comprises said first and second end objects.
15. The method of claim 13, wherein a plurality of objects contact each other at at least a point.
16. The method of claim 13, wherein said objects are substantially circular.
17. The method of claim 13, further comprising making said circle pointer-sensitive.
18. A method for approximating an edge contour of an object in an image file with a polygon, said method comprising: determining a plurality of pixels on the edge contour of the object; storing the coordinates of said plurality of pixels; extending a first line from a starting pixel in said edge contour; identifying a first corner point in response to a deviation from said line; extending a second line from said first corner point to determine a second corner point; identifying a plurality of corner points comprising said first and second corner points; generating a polygon from said plurality of corner points, said polygon at least partially overlapping said object; and making a plurality of pixels in an area defined by said polygon pointer-sensitive.
19. The method of claim 18, wherein said edge contour is an inner contour.
20. The method of claim 18, wherein said deviation comprises a plurality of increasing deviations from an angle from the line, and wherein said first corner point comprises a pixel preceding a first point of deviation.
21. The method of claim 18, wherein said deviation comprises a minimum change in slope between two successive deviations from the line.
22. The method of claim 18, wherein said deviation comprises a minimum number of degrees an angle of deviation must differ from a current vector.
23. The method of claim 18 wherein said object comprises one of a plurality of objects, said method further comprising associating a designation to the polygon associated with said object based on a defined convention.
24. The method of claim 23 further comprising: storing said designation; storing a plurality of pixel coordinates in said polygon; and associating said stored designation with said stored pixel coordinates .
25. The method of claim 18 wherein the object represents a section in a venue.
26. A program storage device readable by a machine comprising instructions that cause the machine to determine coordinates of pixels in an edge contour of an object in an image file, said instructions causing the machine to: determine the coordinates of a first pixel in the edge contour; examine pixels adjacent the first pixel in a first direction according to a first protocol associated with the first direction; locate the second pixel in the edge contour adjacent said first pixel; determine a second direction of travel in response to an orientation of the second pixel to the first pixel; and examine pixels adjacent the second pixel in the second direction according to a second protocol associated with the second direction.
27. The program storage device of claim 26, wherein the edge contour is an inner contour.
28'. The program storage device of claim 26, wherein examining pixels adjacent the first pixel comprises identifying a first adjacent pixel in the edge contour and a second adjacent pixel outside the edge contour.
29. The program storage device of claim 26, wherein the object comprises a plurality of pixels in an x, y coordinate system.
30. The program storage device of claim 29, further comprising instructions that cause the machine to: determine a plurality of pixels in the edge contour; store the x, y coordinates of said pixels in the edge contour; identify a minimum x-coordinate, a maximum x- coordinate, a minimum y-coordinate, and a maximum y- coordinate from said stored x, y coordinates; and generate a rectangle from said minimum and maximum x- and y-coordinates .
31. The program storage device of claim 30, further comprising instructions that cause the machine to: determine a center point of the rectangle; and determine a maximum width of the rectangle.
32. The program storage device of claim 31, further comprising instructions that cause the machine to: define a circle having a diameter approximately equal to said maximum width and approximately centered on said center point of the rectangle.
33. The program storage device of claim 32, further comprising instructions that cause the machine to make pixels in the area defined by the circle pointer- sensitive.
34. The program storage device of claim 32 wherein said object comprises one of a plurality of objects, said device further comprising instructions that cause the machine to associate a designation to the circle associated with said object based on a defined convention.
35. The program storage device of claim 34 further comprising instructions that cause the machine to: store said designation; store a plurality of pixel coordinates in said circle; and associate said stored designation with said stored pixel coordinates.
36. The program storage device of claim 26 wherein the object represents a seat in a venue.
37. The method of claim 36, further comprising instructions that cause the machine to associate a designation to a row comprising a plurality of seats based on a defined convention.
38. A program storage device readable by a machine comprising instructions that cause the machine to determine objects in a row in an image file, said instructions causing the machine to: select a first point in a first end object in the row; select a second point in a second end object in the row; determine a slope between said first and second end objects; generate a seat circle corresponding to said first seat object, said seat circle having a center point and a diameter and at least partially overlapping said first seat object.
39. The program storage device of claim 38, wherein the row comprises a plurality of row segments, and wherein one of said plurality of row segments comprises said first and second end objects.
40. The program storage device of claim 38, wherein a plurality of objects contact each other at at least a point .
41. The program storage device of claim 38, wherein said objects are substantially circular.
42. The program storage device of claim 38, further comprising instructions that cause the machine to make said circle pointer-sensitive.
43. A program storage device readable by a machine comprising instructions that cause the machine to approximate an edge contour of an object in an image file with a polygon, said instructions causing the machine to: determine a plurality of pixels on the edge contour of the object; store the coordinates of said plurality of pixels; extend a first line from a starting pixel in said edge contour; identify a first corner point in response to a deviation from said line; extend a second line from said first corner point to determine a second corner point; identify a plurality of corner points comprising said first and second corner points; generate a polygon from said plurality of corner points, said polygon at least partially overlapping said object; and make a plurality of pixels in an area defined by said polygon pointer-sensitive.
44. The program storage device of claim 43, wherein said edge contour is an inner contour.
45. The program storage device of claim 43, wherein said deviation comprises a plurality of increasing deviations from an angle from the line, and wherein said first corner point comprises a pixel preceding a first point of deviation.
46. The program storage device of claim 43, wherein said deviation comprises a minimum change in slope between two successive deviations from the line.
47. The program storage device of claim 43, wherein said deviation comprises a minimum number of degrees an angle of deviation must differ from a current vector.
48. The program storage device of claim 43 wherein said object comprises one of a plurality of objects., said device further comprising instructions that cause the machine to associate a designation to the polygon associated with said object based on a defined convention.
49. The program storage device of claim 48 further comprising instructions that cause the machine to: store said designation; store a plurality of pixel coordinates in said polygon; and associate said stored designation with said stored pixel coordinates.
50. The program storage device of claim 43 wherein the object represents a section in a venue.
PCT/US2001/014073 2000-05-08 2001-05-01 Automated processing of graphical image to make discreet objects pointer-sensitive WO2001086594A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001259334A AU2001259334A1 (en) 2000-05-08 2001-05-01 Automated processing of graphical image to make discreet objects pointer-sensitive

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US20311500P 2000-05-08 2000-05-08
US60/203,115 2000-05-08
US61262200A 2000-06-28 2000-06-28
US09/612,622 2000-06-28

Publications (2)

Publication Number Publication Date
WO2001086594A2 true WO2001086594A2 (en) 2001-11-15
WO2001086594A3 WO2001086594A3 (en) 2002-10-03

Family

ID=26898324

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/014073 WO2001086594A2 (en) 2000-05-08 2001-05-01 Automated processing of graphical image to make discreet objects pointer-sensitive

Country Status (2)

Country Link
AU (1) AU2001259334A1 (en)
WO (1) WO2001086594A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022061143A1 (en) * 2020-09-17 2022-03-24 Dogan Koslu Methods, apparatuses, and computer program products for provision of automated interactive electronic seating charts

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5033099A (en) * 1989-07-31 1991-07-16 Agency Of Industrial Science And Technology Image recognition system
US5101436A (en) * 1990-05-11 1992-03-31 Optigraphics Corporation Hybrid image editor
US5739826A (en) * 1992-08-08 1998-04-14 Ricoh Company, Ltd. Polygon display based on x coordinates of edges on scan line
US6240396B1 (en) * 1996-09-04 2001-05-29 Priceline.Com Incorporated Conditional purchase offer management system for event tickets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5033099A (en) * 1989-07-31 1991-07-16 Agency Of Industrial Science And Technology Image recognition system
US5101436A (en) * 1990-05-11 1992-03-31 Optigraphics Corporation Hybrid image editor
US5739826A (en) * 1992-08-08 1998-04-14 Ricoh Company, Ltd. Polygon display based on x coordinates of edges on scan line
US6240396B1 (en) * 1996-09-04 2001-05-29 Priceline.Com Incorporated Conditional purchase offer management system for event tickets

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022061143A1 (en) * 2020-09-17 2022-03-24 Dogan Koslu Methods, apparatuses, and computer program products for provision of automated interactive electronic seating charts

Also Published As

Publication number Publication date
AU2001259334A1 (en) 2001-11-20
WO2001086594A3 (en) 2002-10-03

Similar Documents

Publication Publication Date Title
US20020082879A1 (en) Method and system for seat selection and ticket purchasing in a networked computer system
US8051089B2 (en) Systems and methods for location-based real estate service
US20140195277A1 (en) Systems and methods for generating dynamic seating charts
US6760731B2 (en) Genealogy registry system
US5278946A (en) Method of presenting multimedia data in a desired form by comparing and replacing a user template model with analogous portions of a system
US5761328A (en) Computer automated system and method for converting source-documents bearing alphanumeric text relating to survey measurements
US5532838A (en) Method & apparatus for dynamically creating and transmitting documents via facsimile equipment
US6523024B1 (en) Methods for retrieving database with image information
US6842698B2 (en) System and method for performing flood zone certifications
CN102770862B (en) It is used in mixed way position sensor data and virtual query to include to this locality returning virtual query
US5467411A (en) System with approximation mechanism for recognizing graphical elements in a drawing
CN101292258B (en) System and methods for creation and use of a mixed media environment
US8890872B1 (en) Digitizing venue maps
US5835236A (en) Method and apparatus for dynamically creating and transmitting documents via facsmile equipment
US20120065944A1 (en) Methods, apparatus and systems for facilitating generation and assessment of engineering plans
US7805246B2 (en) View-independent tagging of geospatial entities in images
EP3103271B1 (en) Method and apparatus for provisioning geofences
WO2001086622A1 (en) Online presentation system for home pictures and structures
JP2007026316A (en) Image management device, image-managing computer program and recording medium recording the same
US9152617B2 (en) System and method for processing objects
US20050159882A1 (en) System and method for performing flood zone certicifications
Wiggins Three low-cost mapping packages for microcomputers
WO2001086594A2 (en) Automated processing of graphical image to make discreet objects pointer-sensitive
CN111538726A (en) Information input method based on imaging and related equipment
JP2000235587A (en) Method for executing simulation of house design, recording medium and house designing device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: RULE 69(1) EPC

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP