FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Lo siento Delphius, pero no encuentro donde puede estar el error en tu código. Pero mirando tu código, me entraron ganas de hacer teclear algo de código yo. Espero que no te moleste que lo ponga por aquí:
Por ejemplo, si tenemos una imagen cargada en un TImage:
Última edición por seoane fecha: 18-12-2006 a las 15:24:31. |
#2
|
||||
|
||||
Jeje, yo sigo poniendo código. Pero es que el tema me gusto.
Este es un pequeño "truco" que me explicaron hace tiempo para eliminar el moiré, aunque también lo podríamos utilizar para eliminar el ruido de una imagen. Se basa en aplicar el filtro varias veces hasta obtener una imagen muy suavizada, entonces fusionamos la imagen resultante con la imagen original.
PD: Delphius, si te molesta que me entrometa en tu hilo, me lo dices y lo pongo en un hilo nuevo |
#3
|
||||
|
||||
Gracias seoane...
seoane, muchas gracias por brindar tu ayuda.
¡Pues,... ¡que ganas de teclear! Yo me estuve rascando el coco intentando buscarle la vuelta implementandolo con el scanline() así como lo haces vos... No probé tu código... ya le hecho una ojeada profunda... pero a mi primera percepción, ya se está modificando el valor del pixel, en el mismo procedimiento. Si es como estoy pensando (de con sòlo darle una hojeada)... los càlculos no seran los correctos. Pues, se debe mantener en forma "temporal" los datos de la imagen (como mi Matrix) y con ella modificar en forma directa a la imagen. ¿Me explico? 1) Hacer copia temporal de la imagen (en mi caso Matrix) 2) con la matrix y la plantilla de filtrado calcular valor nuevo para P(x,y) 3) Hacer que el "pixel" de la (con scanline()) sea igual al valor calculado. Y NO SOBREESCRIBIR EN LA MATRIX (en mi caso). Si sobreescribo la posición, se pierde el nuevo valor. Según consta en mis apuntes que tengo eso realiza, en ningún momento pierde el viejo valor. Pero... claro... es muy posible que me haya equivocado. Se ve que sabes sobre tratamiento de imagen. Yo mucho de esto no entiendo. Estoy aprendiendo a medida que lo programo. No me molesta que pongas el código. Todo lo contrario, si tiene que ver con el tema... además... tal vez me sirva Gracias, por tu ayuda... Saludos, |
#4
|
||||
|
||||
Cita:
Es decir, copio el contenido de la imagen en un bitmap, que nos va a servir como almacenamiento temporal. Luego al operar, tomo los valores del bitmap temporal y los resultados los guardo directamente en la imagen final. La única diferencia con tu código, es que en el mio no aplico el filtro sobre los pixels de la primera y ultima fila, ni tampoco sobre los de la primera y última columna. Te preguntaras por que, pues porque para esos puntos solo están disponibles, como mucho, 6 puntos de la matriz, por lo que al aplicar el filtro inevitablemente termina oscureciendo el borde da la imagen. Este efecto todavía es mas visible si pasas varias veces el filtro sobre una imagen. Por cierto, me alegro de que no te moleste que me entrometiera en tu hilo. |
#5
|
||||
|
||||
Sorprendente... ¡Eres bueno!
Cita:
Cita:
Eso no aclara el libro que tengo... que vivo... su no fuera por vos, yo ya lo habría dejado asi. Eso me indica que tengo que ponerles mas pilas y ganas de empezara estudiarle bien la mano. Pues si... se nota que sabes de esto.. Saludos, |
#6
|
||||
|
||||
Pues... solo una aclaracion
Lamento abrir el hilo de hace una semana. Estuve fuera estos dias. Veras, Seoane... en tu código hay una parte interesante:
[delphi]) div t;[delphi] Solo quería aclarar que puede haber una falla en esta parte: ¡un cero! No es gran cosa... pero bueno solo aclaro eso. Según estuve viendo... no siempre el valor la suma del filtro es positiva. En algunos la suma es cero. Y por ende... aqui falla. Mediante tu código logré llevarlo según mis apuntes... y con filtro en formato real y no como tu expones. Unos pequeños cambios y listo. Muchas gracias! |
#7
|
||||
|
||||
Caramba! Me faltaba el seguro contra usuario torpes ... Tal como implemento yo el filtro, con números enteros y positivos, la única forma de que fallara es que algún usuario, con ganas de fastidiar, utilizara un filtro en que todos los valores fuesen 0. No tendría sentido, pero nunca esta mal revisarlo todo en busca de cosas sin sentido por parte del usuario
Por lo demás, me alegro de que consiguieras terminar tu código. Si no es algo confidencial, puedes colocarlo por aquí para echarle un vistazo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Invalid Floating Point Operation | inetplus | Varios | 8 | 17-03-2012 22:11:33 |
Error al crear un QRDBText(Invalid Floating...) | david duarte | Impresión | 0 | 26-04-2006 17:08:00 |
Error: Invalid Variant Operation | gusanita | Varios | 3 | 08-02-2006 18:03:38 |
Invalid floating operation?? | nefy | Varios | 8 | 20-04-2004 19:07:01 |
Invalid floating point operation | ciscu | Impresión | 0 | 21-10-2003 13:18:18 |
|