我想用matlab实现在图像中,已知的圆函数内的像素点不变,其他的像素点变黑。但是为什么我这个代码求出来是全黑的,求大神们看看。提提意见该怎么写代码

我想用matlab实现在图像中,已知的圆函数内的像素点不变,其他的像素点变黑。但是为什么我这个代码求出来是整个图片都变黑了。希望大神们可以帮忙看一下代码,提提意见。

中间的是一个圆的表达式

clc
I=imread('Original.png');
imshow(I)
[width,height]=size(I);
for i=1:width
    for j=1:height
        if((i-939.7)^2+(j-125.93)^2>436.9^2)
            BW1(i,j)=0;
        end
    end
end
figure;imshow(BW1),title

1、你的BW1(i,j)取值,只判断了if在圆外的情况BW1(i,j)=0,直接就end掉了,后面应该还需要else的情况,BW1(i,j) = I(i,j);

2、同时需要注意[width,height]=size(I)图像的大小,根据你这个圆的圆心坐标跟半径,如果你的图片宽不超500、高不超300像素,那么自然你的图片都没有在圆范围内。

主要还是第一个问题,你既然这么写图像大小应该是够的。