Quiero aplicar una Transformada de Coseno Discreta (así como la inversa) a una imagen en Python y me pregunto cuál es la mejor manera de hacerlo y cómo. He visto PIL y OpenCV, pero sigo sin entender cómo usarlo.¿Cómo aplico un DCT a una imagen en Python?
Respuesta
De OpenCV:
DCT(src, dst, flags) → None Performs a forward or inverse Discrete Cosine transform of a 1D or 2D floating-point array. Parameters: src (CvArr) – Source array, real 1D or 2D array dst (CvArr) – Destination array of the same size and same type as the source flags (int) – Transformation flags, a combination of the following values CV_DXT_FORWARD do a forward 1D or 2D transform. CV_DXT_INVERSE do an inverse 1D or 2D transform. CV_DXT_ROWS do a forward or inverse transform of every individual row of the input matrix. This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms and so forth.
Here is an example of it being used.
El DCT también está disponible en scipy.fftpack.
¿Podría proporcionar un programa básico para mostrar su uso? Python parece quejarse de que mi matriz de destino está vacía. – jmnwong
¿reformastete la matriz de destino para que fuera del tamaño correcto? – agf
Esencialmente, lo que he hecho es usar PIL para cambiar el tamaño de una imagen de entrada y luego usé cv.CreateImageHeader para crear la fuente así como una matriz de destino vacía. No estoy seguro si esto es correcto. – jmnwong
- 1. ¿Cómo aplico una clase CSS a Html.ActionLink en ASP.NET MVC?
- 2. ¿Cómo aplico un estilo programáticamente?
- 3. ¿Cómo aplico una función multiparamétrica en R?
- 4. ¿Cómo aplico "o" a una lista en elisp
- 5. ¿Cómo aplico un estilo a ListViewItems en WPF?
- 6. ¿Cómo aplico globalmente un XmlAdapter a un programa JAXB?
- 7. ¿Cómo aplico un símbolo como una función en Scheme?
- 8. ¿Cómo aplico jquery-ui a una vista de Backbone.js?
- 9. ¿Cómo aplico la inyección de dependencia a una fábrica abstracta
- 10. Clojure: ¿Cómo aplico una función a un subconjunto de las entradas en un hash-map?
- 11. ¿Cómo copio una imagen remota en python?
- 12. ¿Cómo aplico un efecto a un borde pero no a su contenido en WPF?
- 13. Agregar bordes a una imagen usando python
- 14. En D, ¿cómo aplico una función a todos los elementos en una matriz?
- 15. En git, ¿cómo elimino una confirmación de una rama y la aplico a una rama diferente?
- 16. Cómo aplico VCLStyle para TLinkLabel
- 17. En mercurial, ¿cómo aplico un parche invertido a un archivo en particular?
- 18. ¿Cómo convertir un pdf a una imagen?
- 19. cómo aplico una clase a la celda del encabezado para una columna en slickgrid
- 20. Cómo encontrar una imagen dentro de otra imagen usando python
- 21. ¿Cómo aplico estilos CSS a los objetos Raphael.js usando jQuery?
- 22. Cómo guardar una imagen seleccionando "guardar imagen como ..." en un menú contextual usando Selenium Webdriver (Python)
- 23. ¿Atajo de teclas Python en un diccionario?
- 24. Convertir imagen en una matriz en python
- 25. ¿Cómo aplico programáticamente un filtro de entrada Drupal?
- 26. ¿Cómo crear una imagen en blanco en Python?
- 27. ¿Cómo puedo agregar una imagen a un QWidget en PyQt4
- 28. ¿Cómo agrego una imagen a un elemento en RSS 2.0?
- 29. Cómo convertir un nodo a una imagen en javafx 2.1?
- 30. Detectar si un archivo es una imagen en Python
No estoy seguro exactamente sobre PIL y OpenCV, pero la aplicación tanto de DCT como de DCT inversa consiste básicamente en multiplicar el bloque fuente por las matrices de transformación relacionadas. – agibalov