我想用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像素,那么自然你的图片都没有在圆范围内。
主要还是第一个问题,你既然这么写图像大小应该是够的。