2012-01-19 9 views
-1

私はC++を初めとし、.jpgイメージを読み込んでバイナリ(白黒/白黒/二値/二値)に変換する方法を知りたいですか?C++ - イメージ変換

ありがとうございます。

+0

のいずれかを指定する必要があります。少なくとも、画像形式を指定する必要があります。 –

+0

申し訳ありません - 画像形式はjpgです。 – MusTheDataGuy

+1

C++を初めてお使いの方は、どうして深いところまで飛び込もうとしていますか?良い初心者のガイドを見つける(彼らは通常、初心者の方に向いています)、基礎から始めましょう。 –

答えて

3

おそらくboost Gilです。
ブーストライブラリは特に初心者のためのものではありませんが、よく設計されています。

#include <boost/gil/image.hpp> 
#include <boost/gil/typedefs.hpp> 
#include <boost/gil/extension/io/jpeg_io.hpp> 

int main() { 
    using namespace boost::gil; 

    rgb8_image_t img; 
    jpeg_read_image("test.jpg",img); 

    gray8s_view_t view(img.dimensions()); 
    color_converted_view<gray8_pixel_t>(const_view(img), view); 

    jpeg_write_view("grey.jpg", view); 
} 
1

DevILを使用して画像を読み取ることができます。さまざまな形式をサポートしています。

純粋な白黒に変換するには、画像データ全体を調べ、各ピクセルの輝度または光の寄与を計算し、ある閾値を下回る場合は黒いピクセルを出力し、そうでなければ白いピクセル。

RGB(0.5、0.5、0.5)のしきい値に対して各ピクセルのRGB値を確認するだけで簡単に行うことができます。しかし、画像をHSIに変換して各ピクセルの輝度値を使用すると、より良い結果が得られるかもしれませんが、それはより多くの作業です。

関連する問題