尝试通过 Matlab 切割图像

Trying to cut an image via Matlab

亲爱的朋友们,我正在尝试对图像进行二值化处理,如果我将黑色部分剪掉,效果会更好。为了避免任何有趣的边缘效果,我将图案裁剪成一个圆圈,所以我们的“掩码”连同 Matlab 的相关片段一起绘制在下面

P = imread('Pattern.png');
P = 1-im2bw(P); % Keep black parts
Nmin = min(size(P));
% Crop into square, then circle
P = P(1:Nmin, 1:Nmin);
[xg, yg] = meshgrid(1:Nmin, 1:Nmin);
P((xg - Nmin/2).^2 + (yg - Nmin/2).^2 > 0.99*0.25*Nmin^2) = 0;
% Create a small border
P = padarray(P, [1 1], 0);

但出于某种原因,我在第 7 行遇到问题,

Error: File: Try1.m Line: 7 Column: 42
Unbalanced or unexpected parenthesis or bracket.

请帮帮我...

编辑:

这里有解释

我假设您是从网站上复制此代码的。原因是下面一行:

P((xg - Nmin/2).^2 + (yg - Nmin/2).^2 > 0.99*0.25*Nmin^2) = 0;

注意到>了吗? (这是@beaker 在他们的评论中提到的)如果您在找到它的网站上查看原始代码,可能是 > 而不是 > 对吗?

原因是在HTML中,>符号被writing > in the HTML source code显示。当该网站在您的浏览器中显示时,它会将 > 转换为 > 符号,但显然当 copy-pasting 代码时,它显然复制了 HTML 源代码而不是呈现的标志。

MATLAB 当然无法处理 HTML 源代码,因此您必须将 > 替换为 > 并且您的代码可以正常工作:

P((xg - Nmin/2).^2 + (yg - Nmin/2).^2 > 0.99*0.25*Nmin^2) = 0;