2

我正在使用 Matlab 中的图像处理代码,除非我用波浪号调用原始图像上的函数,然后将其保存到同一个变量中(在互联网上的某个地方找到它),否则细化将不起作用。

 I= bwmorph(~I, 'thin', inf);
 I=~I;

我的问题是,波浪号在这里做什么/意味着什么?

4

4 回答 4

7

如前所述,在您的问题中,它是逻辑非运算符。

但是,我的研究让我来到这里,就我而言,答案是(这比你的问题更笼统):

参数占位符

要让 fileparts 函数返回其第三个输出值并跳过前两个,请将参数 1 和 2 替换为波浪号:

[~, ~, filenameExt] = fileparts(fileSpec);

有关详细信息,请参阅MATLAB 编程文档中的忽略函数输入


来源:MATLAB 运算符和特殊字符

于 2016-07-21T23:00:11.440 回答
6

波浪号~NOTMatlab 中的运算符,它对图像没有什么特别之处,它只是将它们视为矩阵。

~作为运算符返回它所针对的矩阵的布尔形式,结果矩阵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
于 2015-04-17T18:56:22.107 回答
2

~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
于 2015-04-17T18:23:09.307 回答
1

~只不过是NotMatlab 中的一个运算符。

于 2015-05-01T09:26:25.330 回答