Biz pixelbuffer türleridir bilmiyorum apply_visitor
class pixel_visitor
: public boost::static_visitor<>
{
public:
template <typename T>
void operator() (const ome::compat::shared_ptr<PixelBuffer<T> >& v)
{
std::cout << std::real(v);
}
};
pixelBuffer test= buf.vbuffer();
test.apply_visitor(&pixel_visitor());
olacaktır. Ne olursa olsun
, sen, sadece ziyaretçinin çağrı operatöründen o geri dönebilirler vektörlere olanlar dönüştürmek için nasıl biliyorsanız: ör Yani
class pixel_visitor
: public boost::static_visitor<std::vector<WhatEverYouWant> >
{
public:
template <typename T>
result_type operator() (const ome::compat::shared_ptr<PixelBuffer<T> >& v)
{
std::vector<WhatEverYouWant> result;
// do your conversion here
return result;
}
};
yapabilirsiniz Bunun yerine .vbuffer ait
std::vector<WhatEverYouWant> applied;
applied = boost_apply_visitor(pixel_visitor(), test);
Neyin bir vektörü? Ne sahip olduğunuzu ve ne istediğinizi gösteren kodu (küçük ama eksiksiz) sağlayabilir misiniz? – VolkerK
@VolkerK Yayını güncelledim. Şu anda bu desteklemeyi öğrenmeye çalışıyorum apply_visitor. Nasıl çalıştığına dair hiçbir fikrim yok. Boost :: makevariant'ı bir çift vektöre dönüştürmeye çalışıyorum. Görüntünün piksel verilerini tutar –
Hala aradığınızdan emin değilsiniz. "pixelBuffer testi" (yazım hatası düzeltildiğinde) tek bir değerdir. Bu tek değerden ne tür bir vektör yaratmak istersiniz? Tam olarak ne buf.vbuffer() 'döner? (Belgelerine bağlanabilir misiniz?) – VolkerK