Pregunta

Estoy tratando de utilizar el Acelerar el marco en iOS para omitir el hecho de que el Núcleo de la Imagen en iOS no soporta filtros personalizados/kernels.Estoy desarrollando un filtro de detección de bordes mediante dos circunvoluciones con un Sobel kernel, pero comenzando con una simple desenfoque Gaussiano para obtener la cuelga de ella.Sé vImage está orientado a la manipulación de imágenes como matrices y vDSP se centra en el procesamiento de señales digitales a través de Fourier.Pero a pesar de que empecé a usar el vImage funciones (vImageConvolve_XXXX, etc), estoy escuchando un montón de gente discutiendo el uso de la vDSP funciones (vDSP_conv, vDSP_imgfir, etc) para hacer cosas tales como las circunvoluciones.Lo que me lleva a la pregunta en cuestión:cuando debo usar uno sobre el otro?¿Cuáles son las diferencias entre ellos en cuanto a la convolución de las operaciones?He buscado por todas partes pero no podía encontrar una respuesta clara.Alguien puede arrojar algo de luz en él, o me apunte en la dirección correcta?

Gracias!

¿Fue útil?

Solución

Si Vimage proporciona la operación que necesita, generalmente es más sencillo usarlo.Vimage hace el bloqueo de caché y el enhebrado para usted, VDSP no lo hace.Vimage proporciona operaciones en formatos intercalados y enteros, que a menudo son útiles para el procesamiento de imágenes.

Otros consejos

La última vez que experimenté, ninguno de estos marcos tomó ventaja de la separación del núcleo, lo que permite un enorme mejora del rendimiento al convolving en el dominio espacial -- un tamaño mucho mayor impulso en el rendimiento de vectorizados instrucciones jamás van a comprar a usted.El Sobel kernel en particular es separable, por lo que si usted está utilizando vDSP o vImage (en lugar de decir OpenCV), asegúrese de separar el núcleo mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top