Sto estendendo il controllo ImageBox da EmguCV. La proprietà Image
del controllo può essere impostata su qualsiasi cosa che implementa l'interfaccia IImage
.Metodi di chiamata C# nelle classi generiche
Tutti i seguenti implementare questa interfaccia:
Image<Bgr, Byte>
Image<Ycc, Byte>
Image<Hsv, Byte>
Ora voglio chiamare il metodo Draw
sull'oggetto del tipo sopra (che cosa mai possa essere).
Il problema è quando accedo alla proprietà Immagine, il tipo restituito è IImage
. IImage non implementa il metodo Draw
, ma fa tutto quanto sopra.
Credo di poter trasmettere l'oggetto di tipo IImage
a uno dei precedenti (quello di destra) e posso accedere al metodo Draw
. Ma come faccio a sapere qual è quella giusta? Se hai un modo migliore per farlo, per favore suggeriscilo pure.
EDIT
dispiace, ma ho dimenticato di dire un pezzo importante di informazioni. Il metodo Draw per ognuna delle classi precedenti prende un argomento diverso. Ad es. Draw
per Image<Bgr, Byte>
prende un argomento di tipo Bgr
e lo Draw
per Image<Hsv, Byte>
prende un argomento di tipo Hsv
invece.
È possibile accedere all'Immagine e al codice immagine? –
EmguCV è un progetto open source, anche se in realtà preferisco semplicemente usare i loro binari :) – Aishwar
Non sembra che l'interfaccia immagine/implementazione sia ben progettata. –