2011-02-12 27 views
3

が最も簡単な方法は画像の明るさ、コントラスト、ガンマを調整します。すべてのRGBピクセル以上のループを、各チャネルに次の操作を行います:私は不適切なこれらの調整を実行する方法を知っているので、単語「正しくは」ここにある明るさ、コントラスト、C++、Qtによるガンマ調整

int changeBrightness(int value, int brightness) { 
    return qBound<int>(0, value + brightness * 255/100, 255); 
} 
int changeContrast(int value, int contrast) { 
    return qBound<int>(0, int((value - 127) * contrast/100) + 127, 255); 
} 
int changeGamma(int value, int gamma) { 
    return qBound<int>(0, int(pow(value/255.0, 100.0/gamma) * 255), 255); 
} 

このコードは、明るさ/ conrast /の効果が追加されますが、ガンマの変化、それは非常によく見えません。 Photoshopのようなプロフェッショナルイメージングソフトウェアは、それをはるかに優れています。

この種のものに対処するにはどのようなライブラリが最適ですか?私はImageMagickがあることを知っているが、それは本当に重いです、私は数百の1つの機能にリンクしたいです。軽量の代替品はありますか?

+2

それはあなたの実装と同じ結果が得られない場合にはPhotoshopが非常によく、ちょうど基本的なBRI/CON /ガンマの調整に加えて、何かをしていることがあります。しかし、私はOpenCVに投票します。 –

+0

ImageMagickはPhotoshopと同様の結果を示します。彼らはどちらも適切な技術を使用していると思います。私はそれがロケット手術ではないと確信していますが、まだかなり複雑です –

答えて

2

definetely OpenCV

+0

私は実際にはOpenCVとImageMagickの間で選択する軽量なものを探していました。また、上記の調整を行うapiへのリンクは役に立ちます –

+0

あなたが投稿した9行は他のどの解決策よりもかなり軽量であると思います。自分のことを書くのはどういう意味ですか? – Luke

+0

私が言及したように、同じ操作がPhotoshopのyeildイメージではるかに優れた品質で行われたため、私にとっては不適切です。 –

関連する問題