Python で OpenCV モジュールを使用して画像を反転する
OpenCV または OpenSource Computer Vision Library は、画像処理と機械学習に使用されるリアルタイムのコンピュータービジョンライブラリです。これは C/C++ で記述されており、C++、Python、Java などの多くのプログラミング言語で使用できます。Python では、一般に、OpenCV は、行列、多次元配列、および数学計算用の Python ベースのライブラリである NumPy とともに使用されます。
画像は NumPy 多次元配列を使用して表され、OpenCV を使用して処理されます。OpenCV モジュールを使用すると、反転、スケーリング、回転、ミラーリング、色の変更、色の反転など、画像に対して多くの操作を実行できます。この記事では、OpenCV モジュールを使用して画像を反転する方法を学習します。
画像の反転
画像は、RGB または赤緑青の値を使用して表されます。それぞれが 0
から 255
(両方を含む)の間の整数値を取ることができます。たとえば、赤い色は (255, 0, 0)
、白は (255, 255, 255)
、黒は (0, 0, 0)
などを使用して表されます。
画像を反転させるとは、画像の色を反転させることを意味します。たとえば、赤色の反転色は (0, 255, 255)
になります。0
が 255
になり、255
が 0
になったことに注意してください。これは、画像を反転すると、基本的に 255
から古い RGB 値が差し引かれることを意味します。
New_Value = 255 - Old_Value
元の画像:
反転画像:
Python の bitwise_not()
メソッドを使用して画像を反転する
OpenCV には、ビット単位の NOT 演算を実行する bitwise_not()
メソッドがあります。この関数を使用して、画像を反転させることができます。次のコードを参照してください。作業ディレクトリに image.png
という名前の画像があると見なされます。
import cv2
image = cv2.imread("image.png", 0)
inverted_image = cv2.bitwise_not(image)
cv2.imwrite("inverted.jpg", inverted)
cv2.imshow("Original Image", image)
cv2.imshow("Inverted Image", inverted_image)
このプログラムは、最初に画像をロードし、それを反転して、作業ディレクトリに保存します。その後、元の画像と反転した画像の両方が表示されます。
Python で numpy.invert()
メソッドを使用して画像を反転する
NumPy には invert()
メソッドがあり、ビット単位の反転またはビット単位の NOT 演算を実行します。次のコードは、このメソッドを使用して反転を実行する方法を示しています。
import cv2
import numpy as np
image = cv2.imread("image.png", 0)
inverted_image = np.invert(image)
cv2.imwrite("inverted.jpg", inverted)
cv2.imshow("Original Image", image)
cv2.imshow("Inverted Image", inverted_image)
invert()
メソッドの詳細については、こちらを参照してください