尝试通过 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;
亲爱的朋友们,我正在尝试对图像进行二值化处理,如果我将黑色部分剪掉,效果会更好。为了避免任何有趣的边缘效果,我将图案裁剪成一个圆圈,所以我们的“掩码”连同 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;