我正在研究Matlab中的图像处理代码,除非我用波形符号调用原始图像上的函数然后将其保存到同一个变量(在互联网上的某个地方找到它),否则稀疏工作不会起作用)。
I= bwmorph(~I, 'thin', inf);
I=~I;
我的问题是,代字号在这里是什么意思?
答案 0 :(得分:6)
Tilde ~
是Matlab中的NOT
运算符,它对图像没有什么特别之处,它只是将它们视为矩阵。
~
当运算符返回它所调用的矩阵的布尔形式时,原始矩阵中1
的结果矩阵为0
,否则为0
。 / p>
示例:
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
答案 1 :(得分:4)
在你的问题中,正如已经说过的那样,它是逻辑非运营商。
但是,我的研究让我来到这里,就我而言,答案是(这比你的问题更为笼统):
参数占位符
让fileparts函数返回其第三个输出值并跳过 前两个,用波形符替换参数一和二:
[~, ~, filenameExt] = fileparts(fileSpec);
有关详细信息,请参阅MATLAB编程文档中的Ignore Function Inputs。
答案 2 :(得分:2)
~
is the logical NOT
operator in MATLAB。我从未使用过bwmorph
函数,但是从文档中可以看出第一个输入参数是二进制图像。
~I
将做什么(理论上,无论如何)返回一个NxNx3数组,其中1
是I
的RGB值为0
。
更小的例子:
A = [50, 200, 67; 12, 0, 0];
test = ~A;
返回:
test =
0 0 0
0 1 1
答案 3 :(得分:0)
~
只不过是Matlab中的Not
运算符。