banner
Matrix

Matrix

Abyss
email
github

画像の色を変更

1 つの要求は、画像の赤い部分を青い部分に変換することです。最初のアプローチは、チャネルの交換を使用して問題を解決することですが、これによりいくつかの混合色の色変換が発生する可能性があります。例えば、オレンジ色が紫色に変わります(黄 + 赤 || 黄緑 + 青)。

別のアプローチは、色空間変換です。1 つの空間で問題を解決できない場合、座標変換を使用して別の空間に変換して解決し、それから元の空間に戻すことができます。そして、別の空間では、私たちの操作が元の空間に予期しない操作を加えることはありません。

実装コード:

import cv2
import numpy as np

image = cv2.imread('C:/Users/admin/Desktop/test.png')

HSVImage = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

lowerRed1 = np.array([0, 64, 50])
upperRed1 = np.array([10, 255, 255])
lowerRed2 = np.array([160, 64, 50])
upperRed2 = np.array([180, 255, 255])

redMask1 = cv2.inRange(HSVImage, lowerRed1, upperRed1)
redMask2 = cv2.inRange(HSVImage, lowerRed2, upperRed2)
fullMask = redMask1 + redMask2

blueHue = 60
HSVImage[:, :, 0] = np.where(fullMask == 255, blueHue, HSVImage[:, :, 0])

finalImage = cv2.cvtColor(HSVImage, cv2.COLOR_HSV2BGR)

cv2.imwrite('C:/Users/admin/Desktop/out.png', finalImage)
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。