我正在开发一种需要检测不同类型的跟踪代码(条形码,qr代码,RFID等)的软件。我创建了一个接口TrackingIdentifier
,它将由BarcodeIdentifier
,QRCodeIdentifier
,RFIDIdentifier
等实现。对于条形码和qrcode,检测算法的输入将为cv: :Mat& image。但对于RFID来说,它将是另一回事。代码将是这样的:
class TrackingIdentifier{
public:
virtual std::string getTrackingCode(ITrackingInfoHolder *holder) = 0;
};
现有的cv::Mat
可以实现此ITrackingInfoHolder
吗?
答案 0 :(得分:1)
您可以使用Adapter Pattern。
struct MatInfo : ITrackingInfoHolder {
info getInfo() override {
return mat....(); // delegate to cv::Mat implementation
}
private:
cv::Mat mat;
};