カラーイメージにカラーマスクを適用しようとしています。カラーマスクは、カラー画像に適用したいアウトラインです。ピンクの輪郭(BGR = [180, 105,255]
)を除き、マスクはすべて黒です。奇妙なことに、次の方法を使用して、シアンである[227,230,49]
の輪郭を適用することができます。OpenCV - カラーイメージにカラーマスクを適用する
カラー画像をimgColor
、シアンの輪郭をmaskCyan
とします。再び、このマスクは、[227,230,49]
である輪郭の一部であるピクセルを除いてすべて黒色の[0,0,0]
である。それから私はimgColor_with_cyan_outline = cv2.bitwise_or(imgColor, maskCyan)
を実行するだけでイメージにこれを適用することができます。私はこれをmaskPink
とし、シアンの代わりにピンクのピクセルを使用してimgColor_with_pink_outline = cv2.bitwise_or(imgColor, maskPink)
を使用すると、マスクまたはアウトラインを適用せずに元の画像が返されます。私はちょうどどのようにcv2.bitwise_or()
の作品を誤解していると思うが、わからない。
カラーイメージにカラーマスクを適用する他の方法はありますか?
が重複する可能性を読み取ることができます(https://stackoverflow.com/questions/22255368/copying-values-from-one-numpy-matrix-to-another-dependent-on-boolean-mask) –
bitwiseまたは - >は各ビットをとり、他の画像の同じビット。たとえば、1つのイメージのピクセル63と255のピクセルが255の場合は、255になります。63と72の場合は、127が得られます(63111111 adn 72は01001000です)。マスクの逆数をバイナリ(白と黒)で行い、ピクセルを「削除」するか、イメージから黒にすることができます。その後、シアンのものを追加して、シアンの画像を画像に入れます。numpyを使って@DanMašekのリンクに置き換えてください。 – api55