私は、C++とOpenCvライブラリのComputer Visionプロジェクトに取り組んでいます。私は頻繁に私の研究の間のコードのようなものを参照してください。
image_はCVである::マット
cが、私はそれがクラスタ内のブール値を入れると思うint型a =(b == c)の結果は何ですか?
cv::Mat cluster = (image_ == c)*255;
ですが、私は本当にわかりません。 OpenCV documentation of ==
から
私は、C++とOpenCvライブラリのComputer Visionプロジェクトに取り組んでいます。私は頻繁に私の研究の間のコードのようなものを参照してください。
image_はCVである::マット
cが、私はそれがクラスタ内のブール値を入れると思うint型a =(b == c)の結果は何ですか?
cv::Mat cluster = (image_ == c)*255;
ですが、私は本当にわかりません。 OpenCV documentation of ==
から
は、その行列に適用:
”比較の結果は、その要素が、特定の要素または要素のペアが満たす場合には(255に設定されている8ビットシングルチャンネルマスクであります条件)または0
と
”スケーリング:
A*alpha
すなわち、ここまでの3つの答えは、がこの文脈で常にbool
を生成すると仮定した場合、間違っています:image_
とc
のタイプに依存し、それらが行列の場合は上記の引用符が適用されます。そうでない場合、コードがコンパイルされるかどうかはわかりません。しかし、あなたはそれを確認することができます。
''(image_ == c) 'の結果は、image_がcと255ではないエントリ0の行列ですここで、image_はcに等しい。次に、8ビット行列が255に飽和しているため、各行列エントリには255が掛けられます。 少なくとも、行列型が標準型である場合。 – Micka
ここで 'image_'はおそらく' cv :: Mat'(単一チャンネル)ですが、 'c'は' image_'と同じサイズのスカラーか 'cv :: Mat'(シングルチャンネル)です。 – Miki
助けてくれてありがとう – Freddykong
このコードの 'image_'と' c'の種類は何ですか? – Mankarse
'=='( 'image_'と' c'の型について)とそれが '*'をどのように定義するかについてはOpenCV **のドキュメント**を参照する必要があります( '==' int)を使用します。おそらく '=='は0/1値の行列を生成し、おそらく '*'はその行列を与えられた数だけスケーリングしたものにします。しかし、 '=='は単一の 'bool'値を生成することができます。ドキュメントをチェックしてください。 –
更新:ドキュメントをチェックした後、それは0/1値の行列ではなく0/255値の行列です。 –