Oracle8i Visual Information Retrieval Java Client User's Guide and Reference Release 8.1.5 A67300-01 |
|
Oracle8i Visual Information Retrieval is an extension to Oracle8i Enterprise Edition that provides image storage, content-based retrieval, and format conversion capabilities through an object type. The capabilities of this product encompass the storage, retrieval, and manipulation of image data managed by the Oracle8i Enterprise Edition database server. This product supports image storage using binary large objects (BLOBs) and references to image data residing externally in binary files (BFILEs) or URLs.
Visual Information Retrieval is a building block for various imaging applications, rather than being an end-user application in itself. It consists of an object type (OrdVir) along with related methods for managing and processing image data.
Refer to Oracle8i Visual Information Retreival User's Guide and Reference for information about how visual information retrieval works.
You may already be familiar with Oracle8i interMedia Image, either as a component of Oracle8i interMedia or in a previous release as Oracle8 Image Cartridge. The base Image option and Visual Information Retrieval both let you store an image as an object in the database or as a reference to an external file or URL. Both products let you store and query on the following attributes:
Understanding the base Image option is important because the Visual Information Retrieval object type is defined as the Image object plus a signature attribute.
The main differences between the Image option and the Visual Information Retrieval product are that Visual Information Retrieval lets you create and use indexes, and perform content-based retrieval. Content-based retrieval lets you perform queries based on intrinsic visual attributes of the image (color, structure, texture), rather than being limited to keyword searches in textual annotations or descriptions. The underlying technology was developed by Virage, Inc., a leader in content-based retrieval.
Visual Information Retrieval can also be used for facial image recognition when used in conjunction with software from Viisage Technology, Inc. Facial image recognition has applications ranging from security, by determining if the holder of an ATM card is the owner of the card, to movie casting, by determining which actor looks most like a particular historical figure.
Visual Information Retrieval lets you store image data in a database table. The Java client aspect of the product lets you develop client-side Java applications to manipulate and/or modify image data stored in a network-accessible (server-side) database.
You can connect to a server-side object, copy that object from the server side to the client side, perform various operations on the client-side object, and transfer the new object back to the server side.
For situations where you do not have permission to modify the server-side object, Visual Information Retrieval Java Client can retrieve the image from the server side for display purposes only.
Client-side objects have many similarities to server-side objects of the same type.
For each client-side object, there must be a corresponding server-side object. The objects are identical, and the client-side object contains all the APIs that the server-side object does.
However, there are some architectural differences between the two. Visual Information Retrieval Java Client makes use of Java inheritance to build the OrdVir class from the OrdImage and OrdMultiMedia superclasses.
There are a number of attributes that are included on the client side that are not on the server side. These include the following:
The client side also includes some APIs that are not included on the server side. These APIs are used to do the following:
The client/server interaction described in this section assumes that you have created an OrdVir object on the client side.
The following steps describe the process of modifying an OrdVir object using a client/server model.
It is possible to refresh in two different modes: for read-only purposes and for updating purposes. The difference between the two is the lock value. If the lock value is false, then you do not have permission to make changes to the object. If the lock value is true, then you have permission to make changes to the object.
Note that if you execute a method that operates on the client-side object and it changes the state of only the client-side object, you must explicitly flush the server-side object to reflect that change on the server side.
If Table 1-1 indicates that a method operates on both sides, this means that the method operates on the server side, but afterward, it synchronizes with the attributes on the client side.