for y=q-100:q+100
for x=r-100:r+100
for c=x-1:x+1
for d=y-1:y+1
t=impixel("imagename",c,d);
if (t>121)
m(c,d)=255;
end
end
end
end
end
imshow(m);
这运行代码很长一段时间,我需要最小化计算时间。
答案 0 :(得分:0)
for y=q-100:q+100
for x=r-100:r+100
c=x-1;d=y-1;
// top 3 pixels
t=impixel("imagename",c,d);if (t>121) m(c,d)=255; end
c=c+1;
t=impixel("imagename",c,d);if (t>121) m(c,d)=255; end
c=c+1;
t=impixel("imagename",c,d);if (t>121) m(c,d)=255; end
// right pixel
d=d+1;
t=impixel("imagename",c,d);if (t>121) m(c,d)=255; end
// bottom 3 pixels
d=d+1;
t=impixel("imagename",c,d);if (t>121) m(c,d)=255; end
c=c-1;
t=impixel("imagename",c,d);if (t>121) m(c,d)=255; end
c=c-1;
t=impixel("imagename",c,d);if (t>121) m(c,d)=255; end
// left pixel
d=d-1;
t=impixel("imagename",c,d);if (t>121) m(c,d)=255; end
end
end
这比边界循环版本的边界检查更少。