Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

293
Views
Transformación Wavelet discreta LeGal 5/3 con elevación (valores negativos, visualización, confusión LH HL)

Actualmente me estoy sumergiendo en Wavelets y estoy un poco confundido acerca de ciertas cosas.

En primer lugar, esto NO es tarea. Es solo para codificación recreativa.

Para obtener una mejor comprensión, implementé el esquema de elevación para la wavelet LeGal 5/3 en C. Por lo que puedo ver, parece funcionar. Puedo invertirlo y las imágenes originales se reproducen correctamente. En pseudocódigo, mi dwt directo se ve así:

 // deinterleave splits the low band from the high band // (eg 1 0 3 0 6 0 8 1 11 becomes 1 3 6 8 11 | 0 0 0 1) for each row in image: dwt1d(row) deinterleave(row) for each col in image: dwt1d(col) deinterleave(col)

Pero lucho con un par de cosas.

  1. Al aplicar el dwt, obtengo mi imagen transformada, pero los valores están fuera de rango [0 - 255]. Por lo tanto, los guardo en pantalones cortos. Algunos son negativos, y algunos son muy grandes. Ahora, ¿cómo puedo mostrarlos para obtener esas imágenes bonitas como se muestra aquí: ( http://www.whydomath.org/node/wavlets/images/Largetoplevelwt.gif )? Si muestro mi imagen en Matlab con imshow(image, []) , mi salida se ve así: http://i.imgur.com/dNaYwEE.jpg . Entonces, ¿tengo que hacer alguna transformación en mis subbandas? En caso afirmativo, ¿alguien puede señalarme una solución o decirme qué hacer?

  2. En la literatura, a veces veo que las subbandas están ordenadas así: [ LL LH; HL HH ] ya veces así: [ LL HL; LHHH]. Este último, lo veo principalmente cuando el papel es sobre JPEG2000 y también es lo que produce mi algoritmo. Sin embargo, en Matlab, cuando se usa la función lwt2, devuelve el diseño anterior. Veo esto también cuando comparo mi salida con la salida de Matlab. Parece que LH y HL están mezclados. ¿Como puede ser? ¿Importa? ¿Tiene algo que ver con el uso de elevación en lugar de convolución?

  3. ¿Importa realmente si uno hace filas primero y luego columnas o viceversa? No veo ninguna diferencia en mi salida cuando cambio el orden. Lo único que sería diferente es que LH se convierte en HL y HL se convierte en LH. Sin embargo, eso no resuelve mi segunda pregunta porque el resultado es el mismo. Es solo notacional, supongo. Entonces, ¿importa? Vi papeles donde hacen col-fila y otros donde hacen fila-col. Ambos con respecto a JPEG2000.

Muchas gracias. Si alguien pudiera arrojar algo de luz sobre mis problemas, estaría muy agradecido.

Saludos amables, Markus

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Escribí un blog sobre la construcción de un sistema de compresión de imágenes WDR. Usted puede leer más aquí:

http://trueharmoniccolours.co.uk/Blog/

(Notarás que no soy un blogger muy prolífico ;) ). Debe contener todo lo que necesita para implementar su propia versión C++ de la compresión de imágenes WDR. ¡Si no, no dudes en enviarme un mensaje y preguntar!

  1. Sí, esta es una "característica" realmente poco documentada de lo que pude resolver. El valor devuelto por el DWT es en realidad corto y requiere el rango de -255 a +255. Ahora, por supuesto, -255 no se puede renderizar directamente cuando se usa color de 8 bits. Como tal, lo que la gente suele hacer es dividir el valor por 2 y agregar 128 para mostrar (no olvide que la pantalla es solo una herramienta para depurar). De esta manera, mueve 0 para que sea 128 y, por lo tanto, un "gris medio" en una imagen en escala de grises.

  2. Realmente no importa siempre que haga la transformación inversa de la misma manera que hace la transformación directa.

  3. No, no debería hacer ninguna diferencia. Al implementar, usted decide dónde escribir el píxel de destino para que pueda escribirlo donde desee (en una imagen completamente diferente, por ejemplo).

Editar : con respecto a su comentario, la ecuación de elevación Daub 5/3 es la siguiente:

 d = s[n + 1] - ((s[n + 0] + s[n + 2]) / 2);

Entonces, en el caso de una imagen de origen de 255, 0, 255 ... eso daría como resultado un anuncio de -255 . Comenzar con 0, 255, 0 daría el máximo de 255 , por lo que definitivamente debería estar en el rango -255 to +255 o hay algún problema con su implementación.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!