web-dev-qa-db-ja.com

OpenCVとPython:画像の上に色付きのマスクをかぶせる

白黒マスクの形をした透明な単色オーバーレイで画像をカバーしたい

現在、これを実装するために次のJavaコードを使用しています。

redImg = new Mat(image.size(), image.type(), new Scalar(255, 0, 0));
redImg.copyTo(image, mask);

私はpython apiに精通していません。

だから私はPythonに代替APIがあるかどうか知りたいです。より良い実装はありますか?

画像:

src img

マスク:

mask

私が欲しいもの:

what i want

9
Will Li

Python、OpenCV、Numpyのすべてをしばらく扱った後、コードでこれを実装するのは非常に簡単であることがわかりました。

image[mask] = (0, 0, 255)

--------------元の答え--------------

私は次のコードでこれを解決しました:

redImg = np.zeros(image.shape, image.dtype)
redImg[:,:] = (0, 0, 255)
redMask = cv2.bitwise_and(redImg, redImg, mask=mask)
cv2.addWeighted(redMask, 1, image, 1, 0, image)
8
Will Li