Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> comparacion de imagenes con Visual Information retrieval
Saludos.
Estoy tratando de realizar una comparacion de imagenes utilizando
Visual Information retrieval de ORACLE y aunque estoy realizando un
proceso sencillo, el manejador me arroja unos errores que no he podido
solucionar. He buscado por todos lados y he conseguido muy poco
material que no me ha dado la respuesta a mi problema.
Agradeceria que por favor alguno me orientara en como conseguir
informacion para resolver mi enigma.
Para explicar mi problema les muestro mis sentencias desde que creo la tabla.
connect alberto/jalberto;
create table imagen_tabla
(CodigoImagen number primary key, imagen ordsys.ordimage, imagen_firma ordsys.ordimagesignature);
Connect sys/o123123 as sysdba;
create or replace directory imagedir as 'd:\tesis\imagenes';
grant read on directory imagedir to alberto;
connect alberto/jalberto;
create or replace procedure ImportarImagen(dest_id number, filename
varchar2) is
img ordsys.ordimage; ctx raw(64) := null; begin delete from imagen_tabla where CodigoImagen = dest_id; insert into imagen_tabla (CodigoImagen, imagen, imagen_firma) values (dest_id, ordsys.ordimage.init(), ordsys.ordimageSignature.init()) returning imagen into img; img.importFrom(ctx, 'file', 'IMAGEDIR', filename); update imagen_tabla set imagen=img where CodigoImagen=dest_id;end;
connect alberto/jalberto;
create or replace procedure llamarImagen is
begin
importarImagen(1,'00001.bmp'); importarImagen(2,'00002.bmp'); importarImagen(3,'00003.bmp'); importarImagen(4,'00004.bmp'); importarImagen(5,'00005.bmp'); importarImagen(6,'00006.bmp'); importarImagen(7,'00007.bmp'); importarImagen(8,'00008.bmp'); importarImagen(9,'00009.bmp'); importarImagen(10,'00010.bmp'); importarImagen(11,'00011.bmp');
create or replace procedure agrega_firma is
t_image ORDSYS.ORDImage;
image_sig ORDSYS.ORDImageSignature;
n number :=0 ;
BEGIN
loop
n := n + 1;
SELECT imagen, imagen_firma INTO t_image, image_sig FROM imagen_tabla
WHERE CodigoImagen=n FOR UPDATE;
image_sig.generateSignature(t_image);
UPDATE imagen_tabla SET imagen_firma = image_sig WHERE CodigoImagen =n;
exit when n = 33000;
end loop;
END;
create or replace procedure comparaimagen is
t_img ORDSYS.ORDImage;
i number;
imagen_sig ORDSYS.ORDImageSignature;
query_signature ORDSYS.ORDImageSignature;
BEGIN
SELECT codigoimagen, imagen, imagen_firma
INTO i, t_img, imagen_sig
FROM imagen_tabla
WHERE ORDSYS.IMGSimilar(imagen_firma, query_signature, 'color="0.2"
texture="0.1" shape="0.5" location="0.2"', 25) = 1;
END;
Call comparaimagen();
Call comparaimagen()
*
ERROR at line 1:
ORA-29400: data cartridge error IMG-00803: invalid attribute value ORA-06512: at "ORDSYS.SCOREFUNC", line 0 ORA-06512: at "ORDSYS.SIMILARFUNC", line 22 ORA-06512: at "ALBERTO.COMPARAIMAGEN", line 7
![]() |
![]() |