Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: comparacion de imagenes con Visual Information retrieval
sys_at_ORA92> HOST MD d:\tesis\imagenes
sys_at_ORA92> HOST COPY c:\oracle\cat.bmp d:\tesis\imagenes\00001.bmp/v
sys_at_ORA92> HOST COPY c:\oracle\dog.bmp d:\tesis\imagenes\00002.bmp/v
sys_at_ORA92> HOST COPY c:\oracle\cat.bmp d:\tesis\imagenes\00003.bmp/v
sys_at_ORA92> HOST COPY c:\oracle\dog.bmp d:\tesis\imagenes\00004.bmp/v
sys_at_ORA92> create or replace directory imagedir as 'd:\tesis\imagenes' 2 /
Directory created.
sys_at_ORA92> CREATE USER alberto IDENTIFIED BY jalberto 2 /
User created.
sys_at_ORA92> GRANT CONNECT, RESOURCE TO alberto 2 /
Grant succeeded.
sys_at_ORA92> grant read on directory imagedir to alberto 2 /
Grant succeeded.
sys_at_ORA92> connect alberto/jalberto
Connected.
sys_at_ORA92> @ LOGIN
sys_at_ORA92> SET ECHO OFF
GLOBAL_NAME
alberto_at_ORA92> create table imagen_tabla
2 (CodigoImagen number primary key, 3 imagen ordsys.ordimage, 4 imagen_firma ordsys.ordimagesignature)5 /
Table created.
alberto_at_ORA92> create or replace procedure ImportarImagen(dest_id
number, filename
2 varchar2) is
3 img ordsys.ordimage; 4 ctx raw(64) := null; 5 begin 6 delete from imagen_tabla where CodigoImagen = dest_id; 7 insert into imagen_tabla (CodigoImagen, imagen, imagen_firma) 8 values (dest_id, ordsys.ordimage.init(), 9 ordsys.ordimageSignature.init()) 10 returning imagen into img; 11 img.importFrom(ctx, 'file', 'IMAGEDIR', filename); 12 update imagen_tabla set imagen=img whereCodigoImagen=dest_id;
Procedure created.
alberto_at_ORA92> create or replace procedure llamarImagen is 2 begin
3 importarImagen(1,'00001.bmp'); 4 importarImagen(2,'00002.bmp'); 5 importarImagen(3,'00003.bmp'); 6 importarImagen(4,'00004.bmp');
Procedure created.
alberto_at_ORA92> EXECUTE llamarimagen
PL/SQL procedure successfully completed.
alberto_at_ORA92> create or replace procedure agrega_firma is
2 t_image ORDSYS.ORDImage;
3 image_sig ORDSYS.ORDImageSignature;
4 n number :=0 ;
5 BEGIN
6 loop
7 n := n + 1;
8 SELECT imagen, imagen_firma INTO t_image, image_sig FROM
imagen_tabla
9 WHERE CodigoImagen=n FOR UPDATE;
10
11 image_sig.generateSignature(t_image);
12 UPDATE imagen_tabla SET imagen_firma = image_sig WHERE
CodigoImagen =n;
13 exit when n = 4;
14 end loop;
15 END;
16 /
Procedure created.
alberto_at_ORA92> EXECUTE agrega_firma()
PL/SQL procedure successfully completed.
alberto_at_ORA92> CREATE OR REPLACE PROCEDURE comparaimagen
2 AS
3 BEGIN
4 FOR r1 IN
5 (SELECT * FROM imagen_tabla)
6 LOOP
7 FOR r2 IN 8 (SELECT * FROM imagen_tabla 9 WHERE ORDSYS.IMGSimilar 10 (imagen_firma, 11 r1.imagen_firma, 12 'color="0,2" texture="0,1" shape="0,5" location="0,2"', 13 25) = 1 14 AND codigoimagen > r1.codigoimagen) 15 LOOP 16 DBMS_OUTPUT.PUT_LINE 17 ('Imagen_tabla.codigoimagen ' || r1.codigoimagen 18 || ' = Imagen_tabla.codigoimagen ' 19 || r2.codigoimagen); 20 END LOOP;
Procedure created.
alberto_at_ORA92> ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.' 2 /
Session altered.
alberto_at_ORA92> SET SERVEROUTPUT ON
alberto_at_ORA92> EXECUTE comparaimagen()
Imagen_tabla.codigoimagen 1 = Imagen_tabla.codigoimagen 3
Imagen_tabla.codigoimagen 2 = Imagen_tabla.codigoimagen 4
PL/SQL procedure successfully completed. Received on Sun Oct 09 2005 - 01:01:52 CDT
![]() |
![]() |