はじめに
OpenCV-Pythonを使った画像の算術演算に関するこのチュートリアルへようこそ!このチュートリアルでは、加算、減算、およびビット演算について学びます。このチュートリアルが終了するとき、これらの基本演算を使って画像を操作する方法をしっかりと理解しているでしょう。
OpenCV-Pythonを使った画像の算術演算に関するこのチュートリアルへようこそ!このチュートリアルでは、加算、減算、およびビット演算について学びます。このチュートリアルが終了するとき、これらの基本演算を使って画像を操作する方法をしっかりと理解しているでしょう。
画像の加算とは、2つの画像の画素値を加算する処理です。OpenCVでは、この目的のためにcv2.add()
関数が使用されます。
ターミナルでPythonシェルを開く
python3
対象の画像を読み込むために.imread
を利用します。
import cv2 as cv2
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
前のステップで読み込んだ2つの画像を加算するために.add()
を使用します。
result = cv2.add(img1, img2)
結果を書き出します。
cv2.imwrite('Image_Addition.jpg', result)
生成された画像Image_Addition.jpg
は以下のようになります。
これも画像の加算ですが、合成や透明度の感じを与えるために画像に異なる重みを与えます。画像は以下の式に従って加算されます。
cv.addWeighted()
はこの式を画像に適用します。
前のステップで読み込んだ画像に式を適用するために.addWeighted()
を使用します。
result = cv2.addWeighted(img1,0.7,img2,0.3,0)
結果を書き出します。
cv2.imwrite('Image_Blending.jpg', result)
生成された画像Image_Blending.jpg
は以下のようになります。
画像の減算は、2つの画像の違いを見つけるために使用されます。ある画像の画素値を別の画像から減算します。OpenCVでは、cv2.subtract()
関数を使用できます。
.subtract()
を使用して、画像2から画像1の画素値を減算します。
result = cv2.subtract(img1, img2)
結果を書き出します。
cv2.imwrite('Image_Subtraction.jpg', result)
生成された画像Image_Subtraction.jpg
は以下のようになります。
ビット演算は、画素値の個々のビットを操作するために使用されます。OpenCVは、ビット演算を行うためのcv2.bitwise_and()
、cv2.bitwise_or()
、cv2.bitwise_xor()
、およびcv2.bitwise_not()
のような関数を提供しています。
それぞれの演算の例を見てみましょう。
2つの画像の画素値のビットのビット単位のANDを計算するために.bitwise_and()
を使用します。
bitwise_and = cv2.bitwise_and(img1, img2)
2つの画像の画素値のビットのビット単位のORを計算するために.bitwise_or()
を使用します。
bitwise_or = cv2.bitwise_or(img1, img2)
2つの画像の画素値のビットのビット単位のXORを計算するために.bitwise_xor()
を使用します。
bitwise_xor = cv2.bitwise_xor(img1, img2)
2つの画像の画素値のビットのビット単位のNOTを計算するために.bitwise_not()
を使用します。
bitwise_not_img1 = cv2.bitwise_not(img1)
結果を書き出します。
cv2.imwrite('Bitwise_AND.jpg', bitwise_and)
cv2.imwrite('Bitwise_OR.jpg', bitwise_or)
cv2.imwrite('Bitwise_XOR.jpg', bitwise_xor)
cv2.imwrite('Bitwise_NOT_Image1.jpg', bitwise_not_img1)
生成された画像は以下のようになります。
Bitwise_AND.jpg
:Bitwise_OR.jpg
:Bitwise_XOR.jpg
:Bitwise_NOT_Image1.jpg
:おめでとうございます!これでOpenCV-Pythonを使って画像に対して算術演算を行う方法を学びました。画像の加算、減算、およびビット演算を学びました。これらの基本演算は、画像の合成、変化の検出、画像の特定領域のマスキングなど、画像処理タスクにとても役立ちます。
これらの演算がどのように機能するかをより深く理解するために、さまざまな画像を使って練習して実験し続けてください。ご成功をお祈りしております。楽しいコーディングをお過ごしください!