Python×OpenCVで学ぶ画像の算術演算:加算と減算の基本
はじめに
本チュートリアルでは、PythonのOpenCVを使って、画像同士の算術演算(加算・減算)を行う方法を解説します。まずはOpenCVモジュールをインストールする必要があります。
以下のコマンドを実行して、OpenCVモジュールをインストールしましょう。
pip install opencv-python==4.1.1.26
上記のコマンドを実行すると、次のような成功メッセージが表示されます。
Collecting opencv-python==4.1.1.26 Downloading https://files.pythonhosted.org/packages/1f/51/e0b9cef23098bc31c77b0e0 6221dd8d05119b9782d4c2b1d1482e22b5f5e/opencv_python-4.1.1.26-cp37-cp37m-win_amd64.w hl (39.0MB) Requirement already satisfied: numpy>=1.14.5 in c:\users\hafeezulkareem\anaconda3\l ib\site-packages (from opencv-python==4.1.1.26) (1.16.2) Installing collected packages: opencv-python Successfully installed opencv-python-4.1.1.26
2枚の画像を加算する
画像の加算には2枚の画像が必要です。cv2.add(image_one, image_two)というメソッドを使えば、シンプルな記述で加算処理が行えます。ただし、2枚の画像は同じサイズである必要がある点に注意してください。
画像1

画像2

それでは、実際のコードを見てみましょう。
サンプルコード
# cv2モジュールをインポート
import cv2
# 画像を読み込んで変数に格納
image_one = cv2.imread('_one.jpg')
image_two = cv2.imread('_two.jpg')
# 2枚の画像を加算
result_image = cv2.add(image_one, image_two)
# 結果の画像を表示
cv2.imshow('Final Image', result_image)
# メモリを解放
if cv2.waitKey(0) & 0xff == 27:
cv2.destroyAllWindows()出力結果
加算後の画像

なお、cv2.add()では飽和処理(サチュレーション)が行われ、各ピクセルの合計値が255を超えた場合は255に制限されます。そのため、単純なNumPyの足し算とは異なる結果になることがあります。
画像の減算
減算にはcv2.subtract(image_one, image_two)メソッドを使用します。ここでも、加算で使ったのと同じ2枚の画像を利用します。それではコードを見てみましょう。
サンプルコード
# cv2モジュールをインポート
import cv2
# 画像を読み込んで変数に格納
image_one = cv2.imread('_one.jpg')
image_two = cv2.imread('_two.jpg')
# 2枚の画像を減算
result_image = cv2.subtract(image_one, image_two)
# 結果の画像を表示
cv2.imshow('Final Image', result_image)
# メモリを解放
if cv2.waitKey(0) & 0xff == 27:
cv2.destroyAllWindows()出力結果
減算後の画像

減算の場合も同様に飽和処理が適用され、計算結果が負の値になったピクセルは0に制限されます。
まとめ
本記事では、OpenCVのcv2.add()とcv2.subtract()を使った、画像の加算・減算の基本的な方法を学びました。どちらの演算も、引数に渡す2枚の画像のサイズを揃えること、そして飽和処理によってピクセル値が自動的にクリップされることを覚えておきましょう。チュートリアルの内容について不明な点がある場合は、ぜひコメント欄でお気軽にお尋ねください。
-
PythonとOpenCVを使って動画を逆再生(リバース再生)する方法
OpenCVは「Open Source Computer Vision(オープンソース・コンピュータビジョン)」の略称です。この強力なライブラリを活用することで、画像や動画に対してさまざまな操作を実行できます。OpenCVの主な応用分野顔認識システムモーショントラッキング(動体追跡)人工ニューラルネットワーク深層ニューラルネットワーク動画ストリーミング などOpenCVのインストール方法Windows環境では、以下のコマンドでインストールできます。pip install opencv-pythonLinux環境の場合は、次のコマンドを使用します。sudo apt-get install pyt
-
【Python×OpenCV】画像の収縮(エロージョン)と膨張(ダイレーション)の基本を解説
本記事では、PythonのOpenCVモジュールを使って、エロージョン(収縮)やダイレーション(膨張)といったモルフォロジー演算(形態学的処理)を実行する方法を解説します。 OpenCVはコンピュータビジョン向けに設計されたオープンソースのライブラリで、もともとはIntelによって開発されました。BSDライセンスのもとで誰でも無料で利用できます。 OpenCVの機能を使うには、まずpipでインストールしておきましょう。 sudo pip3 install opencv-python エロージョン(収縮)とは?仕組みを解説 エロージョンは、前景オブジェクトの境界を削り取っていく処理です。画像内の