はじめに
![新人ムラ太](../images/images_character/chara4/chara4_hellow.png)
前回は「算術演算」について教えてもらいましたが、ノッキー先生のダイエットのビフォーアフターが見れるということでした!
![ノッキー先生](../images/images_character/chara1/chara1_normal.png)
わたしのダイエットの話は置いといて、画像処理に"全集中"でお願いしますね!
![新人ムラ太](../images/images_character/chara4/chara4_hellow.png)
はい!自分は自分の責務を全うします!
それでは今回は「論理演算」について教えてください!
![ノッキー先生](../images/images_character/chara1/chara1_hellow.png)
わかりました。今回も画像処理の基本ですが、よく使われる処理なのでしっかりと覚えてくださいね!
そもそも論理演算とは
論理演算では数値の意味を真・偽と表現します。画素値に置き換えると真を1(白)、偽を0(黒)として扱います。
論理演算の真理値表を見てみましょう。
![論理演算_1](../images/08/08_001.png)
画像処理の論理演算では画素値の各ビットに対して演算を行います。
例えば画素値「174」を2進表記にすると「10101110」となり、各桁がビットになります。
![論理演算_2](../images/08/08_002.png)
論理和をやってみよう
それでは実際に論理和を実施してみます。「画像B」は単純な白黒画像で、白の部分は画素値255(2進数ですべてのビットが1)、黒の部分は画素値0(2進数ですべてのビットが0)です。
![論理演算_3](../images/08/08_004.png)
「画像B」の黒い部分の結果には変化がありませんでした。これは真理値表のとおり、画素値が0(黒い部分)との論理和では出力が変化しないためです。一方で、「画像B」の白い部分との論理和では白く塗りつぶされる結果になりました。
論理積をやってみよう
次に論理積を実施してみます。
![論理演算_3](../images/08/08_003.png)
先ほどの論理和とは異なる結果になりました。論理積を行うことで「画像B」の白い部分だけを「画像A」から抜き出して、それ以外の部分を黒にすることができます。
この手法を「マスク処理」と呼び、よく使われています。
まとめ
![新人ムラ太](../images/images_character/chara4/chara4_impatient.png)
画像間演算でも種類がたくさんあるんですね...。
覚えることがたくさん増えてきて頭がこんがらがってきました...。
どうしたらいいでしょうか。
![ノッキー先生](../images/images_character/chara1/chara1_normal.png)
もっと心を燃やせ!!
![新人ムラ太](../images/images_character/chara4/chara4_understand.png)
は、はい...!画像処理の柱になれるように頑張ります!
論理演算はもっとフクザツなものがあったと思うんですけど、画像処理でも使われるんでしょうか?
![ノッキー先生](../images/images_character/chara1/chara1_hellow.png)
そうですね、他にも排他的論理和などがありますよ。
とりあえずは今回の内容を理解してもらえたなら良いです。おつかれさまでした!
-
論理演算はビット単位で演算する
-
白黒画像との論理積はマスク処理と呼ばれ、よく使われる方法である