clear all;
clc;
imag = imread('286502.png');
image_binary = im2bw(imag,0.85); %converte image to binary
image_binary = not(image_binary);
figure(1);clf
imagesc(image_binary);colormap(gray)
我用这个代码生成一个椭圆的二进制图像,里面是白色,外面是黑色。但是,我面临的问题是,每当输入椭圆的前景和背景是亮的或暗的时,二进制图像就会变成全黑或全白。
如果你想保持图像的灰度性质,你可以删除行im2bw命令,因为这会将灰度值平坦化为二进制(0-1或白/黑(。
如果你只想显示一个灰色的二进制图像,你可以尝试自定义颜色图
colormap([0 0 0;0.5 0.5 0.5]);
im2bw(imag,0.85)
阈值为固定值,这对某些图像有效,但对其他图像无效。我建议您使用Otsu等方法进行二值化,该方法为每个图像单独确定最佳阈值。
image_binary = imbinarize(imag);