Imageのヒストグラムを計算します。 私はマスクを使用する必要があります。私のマスクは黒と白のイメージのように見えるはずですか? 黒はスペースを無視し、白は計算しますか?OpenCVヒストグラムマスク
マスクを作成します。私は白い画素(R> 220 &G> 220 & B> 220)を黒に、それ以外を白に置き換えます。
私はそれを正しくやっていますか?
Imageのヒストグラムを計算します。 私はマスクを使用する必要があります。私のマスクは黒と白のイメージのように見えるはずですか? 黒はスペースを無視し、白は計算しますか?OpenCVヒストグラムマスク
マスクを作成します。私は白い画素(R> 220 &G> 220 & B> 220)を黒に、それ以外を白に置き換えます。
私はそれを正しくやっていますか?
ピクセルの値が各チャンネルで220未満である画像の部分のヒストグラムを計算したい場合は、マスクを作成するソリューションが適切です。 オリジナルイメージのピクセルを置き換えないように注意してください。元の画像と同じ高さと幅の単一チャネルcv::Mat
を作成してください。次に、元の画像に従ってピクセルを塗りつぶします。 またcv::inRange
機能を使用してこのようなマスクを作ることができる:
cv::MAT mask;
// make inverted mask in order to avoid masking pure red, green or blue
cv::inRange(original_image, cv::Scalar(220, 220, 220), cv::Scalar(255, 255, 255), mask);
// make non-inverted mask
mask = 255 - mask;
このようにしてコード化すれば、 '(0、0、255) '、それは白ではありません。 'cv :: inRange'のロジックがANDであるために起こります。 – Soroush
これはコードが行っていることとまったく同じです。彼は白い画素を探していると言いました。したがって、最初に見つけなければなりませんが、マスクして元のマスクを反転させたいと思っています。 https://photos.app.goo.gl/dNLz8pdeIa4fkK5B2 「(0-220,0-220,0-220)」バウンドを使用して: https://photos.app.goo .gl/HvNkQ0XfynRnzsIv2 – Soroush
私は今、時間を取ってくれてありがとうございます--- OPは反転マスクが欲しいと気づいていませんでした。私は私のコメントを削除します。 –
マスクのあなたの一般的な理解は正しいです。もしあなたがしようとしているのは、220より小さい値を持つすべてのピクセルのヒストグラムを計算することです。 –