Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-03-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 19
radenf Va por buen camino
Acelerar carga de imágenes desde archivo

Un saludo a todos.
Estoy desarrollando un programa que permite visualizar imágenes médicas, en formato .dcm.
Estas imágenes se almacenan en el disco duro en carpetas que poseen la siguiente estructura:

Estudio > Series > Imágenes (.dcm)

Se llaman las imágenes a partir de la ruta del directorio Estudio, la que se encuentra almacenada en una BD de Access.
El problema es que cada imagen pesa 0.5 Mb y un estudio puede contener hasta 2000 imágenes, o sea 1 Gb, lo que obviamente produce un retardo en su aparición en el visor.

¿Es posible acelerar este proceso?

El código que utilizo para llamar las imágenes es el siguiente:

Código Delphi [-]
procedure TVisor.ButtonCargarClick(Sender: TObject);
begin
CnsDMTable1.Clear;
DicomMultiViewer1.DicomDatasets.Clear;
try
CnsDMTable.LoadDcmFileDirEx(DBEditDir.Text);
Application.ProcessMessages;
finally
DicomMultiViewer1.ActiveView.Attributes.ImageData.MagnificationType:= mftCUBIC;
DicomMultiViewer1.Update;
end;
end;

CnsDMTable es una tabla temoral que permite la carga de imágenes desde directorios, archivos o streams.
DicomMultiViewer1 es el Visor de imágenes (algo así como un TImage mejorado).
DBEditDir muestra el directorio donde se encuentran almacenadas las imágenes en el disco duro.
Como siempre agradezco cualquier ayuda.

Salu2
Responder Con Cita
  #2  
Antiguo 04-03-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 19
radenf Va por buen camino
¿No hay sugerencias para acelerar la carga de las imágenes?
Salu2
Responder Con Cita
  #3  
Antiguo 04-03-2013
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Hola, ¿y en qué tarda?, ¿descargarla, la red, el disco, procesado, presentación, etc.?, ¿lo has comprobado?
Responder Con Cita
  #4  
Antiguo 04-03-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 19
radenf Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hola, ¿y en qué tarda?, ¿descargarla, la red, el disco, procesado, presentación, etc.?, ¿lo has comprobado?
Estimado Casimiro Notevi:

Muchas gracias por responder.
La demora se produce al cargar las imágenes desde el disco duro en la tabla temporal (CnsDMTable1), que está conectada al Visor (DicomMultiViewer1), dependiendo del tamaño del archivo puede ser desde unos segundos hasta 1-2 minutos. Esto ocurre en mi computador (HpWorkstation Z1) que posee un procesador Xeon de 8 núcleos, de 3.4 Ghz, con 16 Gb de Ram y un SSD de 240 Gb, aunque estoy seguro que todo ese potencial no lo aprovecha ni mi programa ni Delphi, por ser de 32 bits. Otros programas comerciales similares no presentan tanto retraso.
Es posible implementar streams o threads que aceleren el proceso. Si bien he leido algo sobre estos no tengo idea de como se pueden implementar.

Saludos
Responder Con Cita
  #5  
Antiguo 04-03-2013
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Está claro que tienes algún problema raro por ahí, no puede tardar 2 minutos en presentar una imagen, ni un minuto, vería normal como mucho 1 segundo.
¿Acaso cargas las 2000 imágenes de una vez?
Haría falta saber exactamente qué hace tu programa y cómo.
Responder Con Cita
  #6  
Antiguo 04-03-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 19
radenf Va por buen camino
Estimado Casimiro Notevi :

Tienes toda la razón. Deben cargarse todas las imágenes de un determinado directorio, que pueden llegar a 2000 o más.
Los archivos de imágenes médicas en formato dicom3 se obtienen de equipos de Tomografía computada y Resonancia magnética, entre otros y representan volúmenes de diversas partes del cuerpo, que se segmentan en " cortes" de un determinado espesor. Una analogía burda podría ser por ejemplo un pan de molde, que representa el volumen y cada rebanada representa una imagen.
Este volumen puede manipularse ya sea rotandolo o seccionandolo en cualquier plano.
Si lo deseas te puedo enviar por correo un visor básico que yo desarrollé, que hace lo que te señalo, para que puedas comprender mejor lo que trato de resolver. Pesa sólo 2 Mb y no requiere instalación.

Te saluda y agradece

Iván
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
WebBrowser bloqueo de carga de imagenes titomigue Internet 1 17-08-2010 09:53:34
Acelerar apertura de consulta desde Delphi contra Access Sergiov SQL 4 13-04-2007 10:42:59
Acelerar carga de Delphi mamcx Noticias 4 13-09-2006 00:51:52
Transparencias y carga de imágenes david.rguez Gráficos 1 04-09-2006 18:01:40
carga de imagenes en timage jvalles Gráficos 2 15-12-2005 19:06:57


La franja horaria es GMT +2. Ahora son las 09:21:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi