试图通过Matlab剪切图像

时间:2017-01-31 19:14:55

标签: image matlab bitmap crop mask

亲爱的朋友们,我尝试对图像进行二值化,如果我将黑色部分剪掉,它看起来最好。为了避免任何有趣的边缘效果,我会将图案裁剪成圆形,因此我们的“蒙版”会在下面绘制,以及相关的Matlab片段

enter image description here

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.

请帮帮我......

编辑:

这里是解释

enter image description here

1 个答案:

答案 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;

resulting image