This invention relates to imaging technologies and, more particularly, to a method, system, and computer-readable medium for user-assignment of geographic data to an image file.
The global positioning system (GPS) comprises a constellation of satellites that broadcast respective positions that can be received by terrestrial or airborne receivers. A GPS receiver triangulates the GPS signals received from the satellites and calculates a position resolved in latitude and longitude coordinates. The GPS is owned by the U.S. Department of Defense and has numerous military applications. A number of specialized applications have evolved for GPS. For instance, scientists use GPS receivers to monitor movements in Earth's tectonic plates. Consumer products using GPS have become available for various outdoor activities. A common commercial GPS application is navigation systems included in automobiles.
Recently, GPS-enabled cameras have been developed that encode location data in images taken with a camera. For example, a digital camera with an embedded GPS receiver can enter location-of-receiver information in a header field of a digitally-encoded photograph. However, GPS-enabled photography systems are relatively expensive and cumbersome to operate.
In accordance with an embodiment of the present invention, a method of associating geographic data with a computer-readable image data set comprising receiving a user input identifying a geographic location to associate with an image data set and associating the geographic location with the image data set is provided.
In accordance with another embodiment of the present invention, a system for associating geographic data with an image data set comprising an input device operable to receive user input provided thereto and a memory device adapted to store an image data set is provided. The user supplied input specifies geographic data and the system associates the geographic data with the image data set.
In accordance with yet another embodiment of the present invention, a computer-readable medium having stored thereon an instruction set to be executed, the instruction set, when executed by a processor, causes the processor to receive a user input specifying a geographic location and associate geographic data of the location with an image file is provided.
For a more complete understanding of the present invention, the objects and advantages thereof, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:
The preferred embodiment of the present invention and its advantages are best understood by referring to
Embodiments of the present invention provide techniques that facilitate user-assignment, or association, of geographic data with a computer-readable image data set, and thus an image defined thereby, without the need of a GPS-enabled camera or GPS receiver and the like. Thus, an image file may be captured with an imaging device that lacks GPS capabilities and the image data set is then manipulated such that desired geographic data is associated therewith. In one embodiment, the user is able to select an image data set and utilize a drag-and-drop technique for associating desired geographic data with data set 131. If the desired geographic data is already associated with the image file, then the existing data is recognized. Thus, images without the desired geographic data may be brought to the same level of functionality as images with the desired geographic data.
An image file comprises a computer-readable data set 131 captured by a digital imaging device, such as a digital camera or scanner, and may comprise any suitable image file format. Data set 131 will be described with reference to the exchangeable image file (EXIF) format to facilitate an understanding of the invention. However, embodiments of the present invention are not limited to a particular file format and may be applied to any one of various well-known formats or may be implemented with an image file format later developed. Data set 131 may be transferred to system 100 from a digital cameral or other device via I/O port 24 or by way of another mechanism.
Turning now to
GPS IFD 131D comprises a collection of fields 131D1-131DN for recording GPS information associated with image 141 defined by data set 131. TABLE A summarizes exemplary GPS fields 131D1-131DN that may be utilized in embodiments of the invention for enabling user assignment of GPS data with image data set 131. Numerous other GPS-related fields are provided for by data set 131, and may be subject to manipulation in accordance with the teachings of the invention. The particular fields summarized in TABLE A are for illustrative purposes only.
The North/South Latitude tag references a GPSLatitudeRef field 131D1 that maintains an American Standard Code for Information Interchange (ASCII) formatted identifier specifying whether the latitude value references a north or south latitude. An ASCII value of “N” indicates the latitude measurement is a north latitude and an ASCII value of “S” indicates the latitude value references a south latitude. The Latitude tag references a GPSLatitude field 131D2 that maintains a rational measurement of the latitude. The latitude value stored in GPSLatitude field 131D2 may comprise up to three rational values that specify the latitude in degrees, minutes, and seconds. Similarly, the East/West Longitude tag references a GPSLongitudeRef field 131D3 that maintains an ASCII-formatted identifier specifying whether the longitude value references an east or west longitude. An ASCII value of “E” indicates the longitude measurement is an east longitude value and an ASCII value of “W” indicates the longitude measurement is a west longitude value. A longitude value stored in a GPSLongitude field 131D4 may comprise up to three rational values that specify the longitude degree, minute and second.
Imaging application 160 preferably comprises a set of computer-readable instructions and is adapted to derive data that specifies a geographic location, e.g., GPS latitude and longitude values, from user-input. The user input preferably specifies a location identity, e.g., a city name, landmark, or the like, and may comprise an input provided by a pointer device, text supplied to a keyboard, a touch-sensitive screen, or another suitable input. Preferably, application 160 comprises a data set parser and writer adapted to address an IFD and associated tags of data set 131. In the exemplary embodiments described herein, application 160 is operable to parse EXIF-formatted data set 131 and write geographic data to one or more GPS fields. However, other fields, such as user defined fields of an image data set, may be written to by application 160 as well.
Preferably, map 340 is associated with a coordinate reference 132, such as a Cartesian coordinate system, for enabling a user to select or otherwise specify a location of the geographic map with a pointer 110 by user input supplied to mouse 22 or another input device. In the illustrative example, the coordinate system has an origin (0,0) and extends from 0 to 100 along both the x-axis and y-axis. In accordance with an embodiment of the invention, latitude and longitude offsets (LatOffset and LongOffset) are associated with an origin or other reference of map 340 and facilitates conversion of a pointer coordinate to a latitude and longitude value. In the illustrative example, a longitude offset of 25 degrees and a latitude offset of −108 degrees is associated with coordinate reference 132. A position of a pointer 110 identified by an x- and y-coordinate is convertible to GPS data by imaging application 160. For example, GPS longitude and latitude values may be respectively derived from a pointer coordinate according to the following equations:
GPSlong=X—COOR*LongScale+LongOffset (eq. 1)
GPSLat=Y—COOR*LatScale+LatOffset, (eq. 2)
where X—COOR and Y—COOR are the x- and y-coordinates of pointer 110, LongOffset and LatOffset are the longitude and latitude offset values of coordinate reference 132, and LongScale and LatScale are ratios of the longitude and latitude span of map 340 to respective x- and y-coordinate spans.
In a preferred embodiment, map 340 is displayed in a graphical user interface (GUI) 300 along with a file manager 350 as shown by the GUI 300 schematic of
An image file identified by one of nodes 351-354 displayed in file manager 350 is selectable and may be processed according to drag-and-drop file manipulations. The user specifies a particular image file, e.g., photo1.exif, by selecting the appropriate node 351 by moving pointer 110 over the node label and supplying a user input to, for example, mouse 22. The user then performs a drag-and-drop procedure by moving pointer 110 to a desired geographic location displayed on map 340, e.g., to the designation Dallas. An outline or shaded indication of the file label may be displayed with the moving pointer 110 to confirm that a drag-and-drop procedure is being performed. Upon positioning the pointer at the desired geographic location, the user releases the mouse button. The specified image data set and coordinates of mouse 22 are then conveyed to application 160.
In the illustrative example, the pointer 110 has x- and y-coordinates of 70 and 60, respectively. Imaging application 160 translates the x- and y-coordinates into GPS data in accordance with an embodiment of the invention. In the illustrative example, coordinate reference 132 has a longitudinal offset of −108 degrees and a latitude offset of 25 degrees and map 340 comprises a longitude scale of 16/100 and a latitude scale of 13/100. Accordingly, imaging application 160 calculates GPS values for the selected location of map 340 of:
GPSLong=−96.8 degrees=−96 degrees, 48 minutes
GPSLat=32.8 degrees=32 degrees, 48 minutes
The longitude and latitude resolution may be increased by increasing the x- and y-coordinate range associated with image map 340.
Preferably, imaging application 160 is adapted to derive latitude and longitude references from the calculated GPS values. For example, a sign of the calculated GPS longitude value is interpreted as an east or west reference in accordance with an embodiment of the invention. A positive longitude value is interpreted by application 160 as a longitude reference of east and a negative longitude value is interpreted by application 160 as a longitude reference of west, or vice versa. Likewise, a sign of the calculated GPS latitude value is interpreted by imaging application 160 as a north or south latitude reference. A positive GPS latitude value is interpreted as a north latitude and a negative GPS latitude value is interpreted as a south latitude, or vice versa. Accordingly, imaging application 160 derives the following latitude and longitude references from the calculated GPS values:
GPSLatitudeRef=N
GPSLongitudeRef=W
The GPS latitude and longitude reference values are then written into respective fields 131D1 and 131D3 and the unsigned GPS latitude and longitude values are written into respective fields 131D2 and 131D4 of data set 131 by imaging application 160.
It should be noted that geographic map 340 comprises a flat projection and equations 1 and 2 provide conversion of Cartesian coordinates of pointer 110 positioned on the flat projection of map 340. Other map projections and coordinate translation equations may be suitably substituted. Moreover, the magnification of map 340 may be modified to provide greater visual resolution of geographic features. For example, an area of map 340 shown in
In an alternative embodiment, imaging application 160 enables user-association of GPS data with an image by way of text-entry describing a location that is used to index records of a database to evaluate the GPS location of the entered location.
Nodes 501-504 are selectable by the user. An image represented by one of the node 501-504 is displayed in window 480 upon user selection of the respective node 501-504. In the illustrative example, selected node 501 is representative of data set 131 and image 141 is displayed in a window 480. A dialog box 475 is invoked by, for example, user selection of tool bar icon 476 as shown by the GUI 450 schematic of
Application 160 performs an interrogation of table 600 from the location data supplied to text box control 476 by the user. For example, assume that table 600 has a table name of GPSDATA. Imaging application 160 may retrieve GPS data for the location specified by the user by performing an SQL SELECT similar to the following:
select*from GPSDATA where location=‘Dallas’
Execution of the table query results in a return data set 650 as shown by the data set schematic of
If the geographic location entered by the user is not in the table, then the user may be prompted to add the specified geographic location along with a data set to the table. Thus, the user may customize the table to include locations relevant to the user.
Geographic imaging application 160, as well as table 600 and image data set 131, are preferably implemented as an instruction set(s), or program, of computer-readable logic. The instruction set is preferably maintained on any one of various conventional computer-readable mediums. In the context of this document, a “computer-readable medium” can be any means that can contain, store, communicate, propagate or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-readable medium can be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semi-conductor system, apparatus, device, or propagation medium now known or later developed.