PythonとOpenCVを使って画像の特定の色を別の色に変更する方法について説明します。この記事では、2つの異なる方法を紹介します。
方法1:for文を使用する
まずはfor文を使用して色を変更する方法について見てみましょう。以下にそのコードを示します。
import cv2
# 画像の読み込み
img = cv2.imread('img.png')
# 指定色
target_color = (255, 255, 255)
# 変更後の色
change_color = (0, 0, 0)
# 画像の縦横
h, w = img.shape[:2]
# 色の変更
for i in range(h):
for j in range(w):
b, g, r = img[i, j]
if (b, g, r) == target_color:
img[i, j] = change_color
else:
img[i, j] = (255, 255, 255)
このコードでは、画像の各ピクセルを走査し、指定した色(ここでは白色)が見つかった場合にその色を別の色(ここでは黒色)に変更します。
方法2:np.whereを使用する
次に、numpyのnp.where
関数を使用して色を変更する方法を見てみましょう。以下にそのコードを示します。
import cv2
import numpy as np
# 画像の読み込み
img = cv2.imread('img.png')
# 指定色
target_color = (255, 255, 255)
# 変更後の色
change_color = (0, 0, 0)
# 色の変更
img = np.where(img == target_color, change_color, (255, 255, 255))
このコードでは、np.where
関数を使用して指定した色のピクセルを一度に見つけ、それらを別の色に変更します。
以上、PythonとOpenCVを使って画像の特定の色を別の色に変更する2つの方法について説明しました。これらの方法を使って、画像処理における色の操作を自由に行うことができます。.