【Python-openCV】モノクロ画像を白黒反転する方法!

このページでは、以下の画像のようにモノクロ画像を白黒反転する方法をご紹介していきます。

画像を白黒反転するという作業概要図

ほんの数行のコードで完了しますので、ぜひやり方を覚えておきましょう。

 

※今回はPython上でOpenCVというライブライを使用します。

インストールしていない場合は、まずはインストール作業から始めましょう。

Pythonのインストール方法以下から!

openCVのインストール方法以下から!

スポンサーリンク

事前準備:画像のビット数を確認する

今回紹介する白黒変換する方法は8ビット画像にか対応していません。

ビット数が違う画像については、追加の処理がいくつか必要になりますので、ご注意ください。

 

というわけでまずは使用する画像のビット数を調べておきましょう。

以下がその調査方法です。

①画像ファイルを右クリック

②プロパティを選択

③詳細タブを選択

すると以下の画像のような情報が表示されます。

画像のビット数を確認する方法

 

ここに書いてある”ビットの深さ”という項目があなたが使用しようとしている画像のビット数です。

 

ここが8になっていれば以降で紹介するサンプルコードは問題なく動作しますのでご安心ください。

(16ビットの画像でも一応動作はしますが、最終的に出力される画像が8ビットに自動変換されるはずです。)

 

スポンサーリンク

画像を白黒反転するサンプルコード

それでは早速ですが、モノクロ画像を白黒反転するサンプルコードをご紹介します。

(プログラム実行フォルダにあるsample.jpgというファイルに対して処理を実行しています。)

import cv2
#ベース画像の読み込み
read_file='sample.jpg'
img=cv2.imread(read_file,cv2.IMREAD_GRAYSCALE)
#白黒反転作業作業
img=255-img
#画像出力
cv2.imwrite('sample2.jpg',img)

とはいえ、これだけではよく理解できないと思いますので、以降で何をやっているのか詳細解説しておきます。

 

スポンサーリンク

白黒反転作業の概要説明

白黒反転作業というのは、先ほどのコード中の以下の部分で実施しているのですが、その点について少し解説しておきます。

(読み込んだ配列全体を255から引いた値に変換している)

img=255-img

 

先ほど紹介した8ビットの画像というのは、一番明るいところ(真っ白の場所)の輝度値が255、一番暗いところ(真っ黒い場所)の輝度値が0という形で表現されています。

 

この状態から全体の輝度を255から引き算することによって、もともと輝度値=0だった場所は輝度値=255に、輝度値=255だった場所は輝度値=0に、変換されることになります。

 

つまりこの処理を実行すれば、白(輝度値=255)と黒(輝度値=0)を反転させることができるというわけです。

 

スポンサーリンク

サンプルコードの実行結果の確認

それでは先ほどのコードを実際に実行してみましょう。

 

〇実行前のフォルダの状況

こんな感じでプログラムファイルと画像ファイルだけがある状態です。

サンプルコード実行前のフォルダの中身

 

〇実行後のフォルダの状況

以下が実行後の状態です。

サンプルコード実行後のフォルダの中身

問題なく白黒反転画像が生成されていますね。

 

スポンサーリンク

おわりに

というわけで今回はpython-openCVを使って、モノクロ画像を白黒反転する方法をご紹介しました。

実験データの処理の際などにぜひご活用ください。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました