亲爱的朋友们,我尝试对图像进行二值化,如果我将黑色部分剪掉,它看起来最好。为了避免任何有趣的边缘效果,我会将图案裁剪成圆形,因此我们的“蒙版”会在下面绘制,以及相关的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.
请帮帮我......
编辑:
这里是解释
答案 0 :(得分:3)
我假设您已从网站复制此代码。原因如下:
P((xg - Nmin/2).^2 + (yg - Nmin/2).^2 > 0.99*0.25*Nmin^2) = 0;
注意>
? (@beaker在评论中提到的内容)如果您在找到它的网站上查看原始代码,可能会有>
代替>
吗?
原因是在HTML中,>
符号由writing >
in the HTML source code显示。当您的浏览器中显示该网站时,它会将>
转换为>
符号,但显然在复制粘贴代码时,它显然会复制HTML源代码而不是呈现的符号。
MATLAB当然无法处理HTML源代码,所以你必须用>
替换>
,你的代码才能正常工作:
P((xg - Nmin/2).^2 + (yg - Nmin/2).^2 > 0.99*0.25*Nmin^2) = 0;