Extiendo el control ImageBox desde EmguCV. La propiedad Image
del control se puede establecer en cualquier elemento que implemente la interfaz IImage
.C# Métodos de llamada en clases genéricas
Todos los siguientes implementar esta interfaz:
Image<Bgr, Byte>
Image<Ycc, Byte>
Image<Hsv, Byte>
Ahora quiero llamar al método Draw
en el objeto del tipo anterior (lo que nunca puede ser).
El problema es cuando accedo a la propiedad de la imagen, el tipo de retorno es IImage
. IImage no implementa el método Draw
, pero sí lo hace todo lo anterior.
Creo que puedo convertir el objeto del tipo IImage
en uno de los anteriores (el correcto) y puedo acceder al método Draw
. ¿Pero cómo sé cuál es el correcto? Si tiene una mejor manera de hacerlo, sugiérala también.
EDITAR
Lo sentimos, pero se me olvidó mencionar una pieza importante de información. El método Draw para cada una de las clases anteriores toma un argumento diferente. Por ej. Draw
para Image<Bgr, Byte>
toma un argumento de tipo Bgr
y el Draw
para Image<Hsv, Byte>
toma un argumento de tipo Hsv
en su lugar.
¿Tiene acceso al código de imagen e imagen? –
EmguCV es un proyecto de código abierto, aunque realmente prefiero usar sus binarios :) – Aishwar
No parece que la interfaz/implementación de la imagen esté bien diseñada. –