OpenCVでグレースケール画像の明るさを調整する方法(ヒストグラム均等化の使い方)
equalizeHist()メソッドによる明るさの正規化
OpenCVのImgprocクラスに用意されているequalizeHist()メソッドを使うと、グレースケール画像のヒストグラムを均等化できます。ヒストグラムを均等化することで、画像全体の明るさが正規化され、コントラストが向上します。暗すぎる・明るすぎる画像や、コントラストが低く見えにくい画像の補正に有効な手法です。
このメソッドには、次の2つのパラメータを渡します。
- 元画像(グレースケール)を表すMatオブジェクト
- 処理結果を格納するためのMatオブジェクト
サンプルプログラム
次のJavaプログラムでは、カラー画像をグレースケールとして読み込んで保存し、その後、明るさを正規化してコントラストを高めた結果を別ファイルとして保存しています。
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class HstExample {
public static void main(String args[]) {
// OpenCVのコアライブラリを読み込む
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
String input = "D://images//sunset.jpg";
// 画像をファイルからグレースケールとして読み込む
Mat source = Imgcodecs.imread(input, Imgcodecs.IMREAD_GRAYSCALE);
// 結果を格納するための空の行列を作成
Mat dst = new Mat(source.rows(), source.cols(), source.type());
// グレースケール画像を保存
Imgcodecs.imwrite("D://images//Grey_scale.jpg", source);
// ヒストグラムを均等化してコントラストを向上させる
Imgproc.equalizeHist(source, dst);
// 処理結果の画像を保存
Imgcodecs.imwrite("D://images//increasing_contrast.jpg", dst);
HighGui.imshow("output image", dst);
}
}元画像(グレースケール)

処理後の画像

ポイントまとめ
- 画像の読み込み時には
Imgcodecs.IMREAD_GRAYSCALEを指定することで、カラー画像をそのままグレースケールとして取得できます。 equalizeHist()は入力と出力の両方にMatオブジェクトを必要とするため、あらかじめ出力用のMatを作成しておきましょう。- 処理結果は
Imgcodecs.imwrite()で保存できるほか、HighGui.imshow()を使えば画面上で確認することも可能です。
-
Chrome拡張機能のソースコードを表示・確認する2つの方法
パソコンのChromeブラウザにインストールした拡張機能は、その実態として、あらかじめ定義された動作を実行するソースコードファイルの集まりです。「自分が使っている拡張機能がどのようなコードで作られているのか見てみたい」と考える方もいるでしょう。Webページのソースコードならページ上で右クリックして項目を選ぶだけで簡単に表示できますが、Chrome拡張機能のソースコードへのアクセスはそれほど単純ではありません。とはいえ、その理由で諦める必要はありません。以下で紹介する2つの方法を使えば、パソコン上でChrome拡張機能のソースコードを表示できます。なお、本記事の手順はMacを使用して解説していま
-
MacでJPEG画像のサイズを縮小する方法|標準アプリ「プレビュー」を使った簡単手順
Macで写真(JPEG画像)のファイルサイズを縮小したい場合、macOSに標準搭載されている「プレビュー」アプリを使えば、追加のソフトウェアをインストールすることなく簡単に行えます。この記事では、実際の操作手順をわかりやすくご紹介します。※注意: この方法で縮小されるのは画像全体のサイズ(解像度・寸法)です。画像の一部を切り抜くトリミング機能ではありませんのでご注意ください。JPEGのサイズを縮小する手順アプリケーションフォルダを開き、「プレビュー」アプリを起動します(Dockにプレビューが登録されている場合は、そこから起動しても構いません)。プレビューが起動したら、メニューバーの「ファイル」