私はMatlabで画像処理のコードに取り組んでいますが、チルダを使用して元の画像の関数を呼び出して同じ変数に保存しない限り、間引きは機能しません(インターネット上のどこかで見つかりました)。
I= bwmorph(~I, 'thin', inf);
I=~I;
私の質問は、チルダはここで何をする/意味するのですか?
Tilde~
はNOT
Matlab の演算子であり、画像に関して特別なことは何もなく、画像を行列として扱うだけです。
~
as operator は、それが呼び出された行列のブール形式を返します。結果の行列は1
、0
元の行列の場合と0
そうでない場合です。
例:
a = magic(2)
a =
1 3
4 2
~a
ans =
0 0
0 0
別:
b = [4,0,5,6,0];
~b
ans =
0 1 0 0 1
~
NOT
はMATLABの論理演算子です。この関数を使用したことはありませんbwmorph
が、ドキュメントによると、最初の入力引数はバイナリ イメージです。
~I
(理論的にはとにかく) 行うことは、NxNx3 配列を返すことです。1
ここで、 は の RGB 値I
です0
。
より小さな例の場合:
A = [50, 200, 67; 12, 0, 0];
test = ~A;
戻り値:
test =
0 0 0
0 1 1
~
Not
は、Matlabの演算子に他なりません。