我正在使用 Matlab 中的图像处理代码,除非我用波浪号调用原始图像上的函数,然后将其保存到同一个变量中(在互联网上的某个地方找到它),否则细化将不起作用。
I= bwmorph(~I, 'thin', inf);
I=~I;
我的问题是,波浪号在这里做什么/意味着什么?
如前所述,在您的问题中,它是逻辑非运算符。
但是,我的研究让我来到这里,就我而言,答案是(这比你的问题更笼统):
参数占位符
要让 fileparts 函数返回其第三个输出值并跳过前两个,请将参数 1 和 2 替换为波浪号:
[~, ~, filenameExt] = fileparts(fileSpec);
有关详细信息,请参阅MATLAB 编程文档中的忽略函数输入。
波浪号~
是NOT
Matlab 中的运算符,它对图像没有什么特别之处,它只是将它们视为矩阵。
~
作为运算符返回它所针对的矩阵的布尔形式,结果矩阵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 中的一个运算符。