2

画像ビューからピクセルまたはチャネル タイプを抽出する正しい方法が見つかりません。gray8_view_t の場合、以下の pod_t を「unsigned char」に定義しようとしています。単純な ViewType::pixel_t はありません。関数 PixelFoo でのこの型の適切な定義は何ですか?

    template<class ViewType> 
    void PixelFoo(ViewType v)
    {
        typedef typename ViewType::x_iterator::value_type::channel_t pod_t;
        pod_t maxVal = channel_traits<pod_t>::max_value();
        pod_t podVal = v(0, 0); //expect error with emptyView
    }
    void PixelBar()
    {
        gray8_view_t emptyView;
        PixelFoo(emptyView);
    }
4

2 に答える 2

0

ViewType::value_typeあなたが期待したものに似ているはずですViewType::pixel_t

次に、同種のピクセルタイプの場合、channel_type<T>::typefrom HomogeneousPixelBasedConceptは、探しているタイプにつながるはずです。

template<class ViewType> 
void PixelFoo(ViewType v)
{
    typedef typename boost::gil::channel_type<typename ViewType::value_type>::type pod_t;
    pod_t maxVal = channel_traits<pod_t>::max_value();
    pod_t podVal = v(0, 0); //expect error with emptyView
}
于 2011-08-16T08:49:01.670 に答える
0

これは私の現在の回避策ですが、必要なタイプに到達するためのメソッドが提供されていると確信しています。

template<class DestView>
struct view_traits;
template<>
struct view_traits<gray8_view_t> {
    typedef bits8 channel_t;
};
template<>
struct view_traits<gray16_view_t> {
    typedef bits16 channel_t;
};
template<>
struct view_traits<gray64f_view_t> {
    typedef double channel_t;
};
于 2011-07-26T17:05:36.243 に答える