在 MATLAB 中使用 for 循环字符



我想在 for 循环中使用一个字符,但我不能,因为我使用的是 ginput 函数,并且每次单击鼠标都可以在 for 循环中更改第一个和结束像素我无法使用确切的像素这是我运行代码时的错误。

下标索引必须是实正整数或逻辑。

A=imread('peppers.png');
C=imshow(A);
F=rgb2gray(A);
figure,imshow(F)
B=ginput(4)
a=min(B);
b=max(B);
a1=a(1)
a2=a(2)
b1=b(1)-a(1)
b2=b(2)-a(2)
for i=a1:a1+b1
    for j=a2:a2+b2
       F(j,i)=0;
    end
end
figure,imshow(F)

您从input获得的值略微偏离完整整数。使用 B-round(B),您会看到错误。

要修复此问题,请使用round

B=round(ginput(4))

错误消息真的很好奇

尝试访问 F(142,162(;索引必须是 正整数或逻辑。