변환하는 방법 gray8_view_t 을 rgb8_view_t 를 사용하여 부스트::길을 만들 rgb8_image_t 개요?

0

질문

이후 부스트::길을 지원하지 않 gray8_view_t 위해 쓰는 BMP 형식으로 전환해주세요 gray8_view_t 을 rgb8_view_t. 여기에 나는 지금까지 시도했습니다.

auto rgb_view = boost::gil::planar_rgb_view(width, height, pixels, pixels, pixels, width);

픽셀이 포함 원 픽셀에서 gray8_view_t 체,그래서 나는 r=g=b=픽셀이 있습니다. 지 boost::gil::write_view(ofstream, rgb_view, boost::gil::bmp_tag()) 게 빈 이미지입니다. 어떤 생각이 있으십니까?

업데이트: 를 사용하여 참조의 예제 코드 http://coliru.stacked-crooked.com/a/daa0735f774b727f할 수 있었을 대화를 컴파일 color_converted_view<gil::rgb8_view_t>. 그러나 컴파일하지 않을 때 사용 boost::gil::write_view 을 만들에서 이미지 파일의 반환 값 color_converted_view<gil::rgb8_view_t>. 내 생각 나는 것을 만들어야 실제 rgb8_image_t 체에서는 반환 값. 나는 어떻게 변환의 반환 값 color_converted_view<gil::rgb8_view_t> 실제 rgb8_image_t object? 감사합니다!

#include <boost/gil.hpp>
#include <fstream>
namespace gil = boost::gil;

int main()
{
        std::ifstream in("gray8_image_t_sample.jpg", std::ios::binary);
        gil::gray8_image_t img;
        gil::read_image(in, img, gil::jpeg_tag());
        gil::gray8_view_t gv = gil::view(img);
        std::ofstream ofs1("test_image.png", std::ios::out | std::ios_base::binary);
        gil::write_view(ofs1, gv, gil::png_tag()); // This works

        auto rgbv = gil::color_converted_view<gil::rgb8_view_t>(gv);
        std::ofstream ofs2("test_image.bmp", std::ios::out | std::ios_base::binary);
        gil::write_view(ofs2, rgbv, gil::bmp_tag()); // this does not compile
} 

중 하나는 오류 메시지를 나

\boost\gil\color_base_algorithm.hpp(170,76): error G1A4676F8: no member named 'layout_t' in 'boost::gil::image<boost::gil::pixel<unsigned char, boost::gil::layout<boost::mp11::mp_list<boost::gil::red_t, boost::gil::green_t, boost::gil::blue_t>, boost::mp11::mp_list<std::integral_constant<int, 0>, std::integral_constant<int, 1>, std::integral_constant<int, 2>>>>, false, std::allocator<unsigned char>>' [clang-diagnostic-error]

여기에 gray8_image_t 파일 사용

boost boost-gil c++
2021-11-19 23:46:27
1

최고의 응답

1

괜찮아요 나머지 문제는 단순히 misspecified 템플릿을 인수 color_converted_view 예상 대상 픽셀 유형:

#include <boost/gil.hpp>
#include <boost/gil/extension/io/bmp.hpp>
#include <boost/gil/extension/io/jpeg.hpp>
#include <boost/gil/extension/io/png.hpp>
#include <fstream>
namespace gil = boost::gil;

int main()
{
    std::ifstream in("gray8_image_t_sample.jpg", std::ios::binary);
    gil::gray8_image_t img;
    gil::read_image(in, img, gil::jpeg_tag());
    gil::gray8_view_t gv = gil::view(img);
    gil::write_view("input.png", gv, gil::png_tag());

    auto rgbv = gil::color_converted_view<gil::rgb8_pixel_t>(gv);
    gil::write_view("output.png", rgbv, gil::png_tag());
    gil::write_view("output.bmp", rgbv, gil::bmp_tag());
}

로 resuling 파:

2021-11-22 17:00:37

대단히 감사합니다!
BunRieuCua

환호를 받았다. 오 유래. 투표하는 것을 잊지 마세 동(meta.stackexchange.com/questions/5234/...)
sehe

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................