2013-07-26 81 views
0

我目前有一個boost::gil::rgb8c_view_t類型的圖像。我需要將它與這個原型傳遞給一個函數:使用Boost通用圖像庫進行類型轉換

void function(const boost::gil::rgb8c_view_t& input, const int index, const boost::gil::rgb8c_view_t::view_t &output) 

我已通過使用以下語法創建的輸出圖像:

boost::gil::rgb8c_view_t::view_t output(input._dynamic_cast<boost::gil::rgb8c_view_t::view_t>()); 

此時,所述編譯器接受圖像output作爲輸入爲功能。但是,我需要回到boost::gil::rgb8c_view_t類型的圖像。問題是:

  • 這是一個正確的方式來分配圖像output
  • 如何將它轉換回boost::gil::rgb8c_view_t

謝謝你在前進, 內斯托爾

+0

你確定函數原型是正確的嗎? rgb8c_view_t中的'c'表示圖像上的不可變視圖。這對於輸出視圖來說是個問題。 –

+0

而你的第二個代碼片段完全不會創建圖像。您是否試圖按照http://www.boost.org/doc/libs/1_55_0/libs/gil/doc/html/giltutorial.html上的GIL教程? –

回答

0

我不知道如果我正確地理解你的問題(見上文評論),但要創建具有相同大小的輸入圖像的輸出圖像,你可以使用類似下面的電話:

boost::gil::rgb8_image_t output_image(input.dimensions()); 

而得到這樣一個可變的觀點:

boost::gil::rgb8_view_t boost::gil::view(output_image); 

當然你也可以得到像這樣的恆定/不可變視圖:

boost::gil::rgb8c_view_t boost::gil::const_view(output_image);