Tôi đang mở rộng điều khiển ImageBox từ EmguCV. Thuộc tính Image
của điều khiển có thể được đặt thành bất kỳ điều gì đang triển khai giao diện IImage
.C# Gọi phương thức trong lớp học chung
Tất cả các cài đặt giao diện này như sau:
Image<Bgr, Byte>
Image<Ycc, Byte>
Image<Hsv, Byte>
Bây giờ tôi muốn gọi phương thức Draw
trên đối tượng của các loại trên (những gì bao giờ nó có thể được).
Vấn đề là khi tôi truy cập thuộc tính Hình ảnh, kiểu trả về là IImage
. IImage không thực hiện phương thức Draw
, nhưng tất cả các phương pháp trên đều thực hiện.
Tôi tin rằng tôi có thể truyền đối tượng thuộc loại IImage
đến một trong các bên trên (bên phải) và tôi có thể truy cập phương thức Draw
. Nhưng làm thế nào để tôi biết cái đúng là gì? Nếu bạn có một cách tốt hơn để làm điều này, xin vui lòng đề nghị đó là tốt.
EDIT
Xin lỗi, nhưng tôi quên đề cập đến một phần quan trọng của thông tin. Phương thức Draw cho mỗi lớp ở trên có một đối số khác nhau. Ví dụ: Ví dụ: Draw
đối với Image<Bgr, Byte>
có đối số kiểu Bgr
và Draw
cho số Image<Hsv, Byte>
thay thế đối số kiểu Hsv
.
Bạn có quyền truy cập vào mã IImage và hình ảnh không? –
EmguCV là một dự án mã nguồn mở, mặc dù tôi thực sự thích chỉ sử dụng các tệp nhị phân của họ :) – Aishwar
Nó không giống giao diện/triển khai hình ảnh được thiết kế tốt. –