Matlab 创建二值图像

Matlab 创建二值图像,matlab,Matlab,我用这段代码对一个椭圆的二值图像进行编码,椭圆的内部为白色,外部为黑色。但是,我面临的问题是,只要输入椭圆的前景和背景是亮的或暗的,那么二值图像就会变成全黑或全白。如果要保持图像的灰度特性,可以删除行im2bw命令,因为这会将灰度值展平为二值(0-1或白/黑) 如果只想以灰色显示二值图像,可以尝试自定义颜色贴图 clear all; clc; imag = imread('286502.png'); image_binary = im2bw(imag,0.85); %converte ima

我用这段代码对一个椭圆的二值图像进行编码,椭圆的内部为白色,外部为黑色。但是,我面临的问题是,只要输入椭圆的前景和背景是亮的或暗的,那么二值图像就会变成全黑或全白。

如果要保持图像的灰度特性,可以删除行im2bw命令,因为这会将灰度值展平为二值(0-1或白/黑)

如果只想以灰色显示二值图像,可以尝试自定义颜色贴图

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)

如果要保持图像的灰度特性,可以删除line im2bw命令,因为这会将灰度值展平为二进制(0-1或白色/黑色)

如果只想以灰色显示二值图像,可以尝试自定义颜色贴图

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(imag,0.85)
固定值的阈值,该阈值适用于某些图像,但不适用于其他图像。我建议您使用像Otsu这样的方法进行二值化,它分别为每个图像确定最佳阈值

colormap([0 0 0;0.5 0.5 0.5]);
im2bw(imag,0.85)
固定值的阈值,该阈值适用于某些图像,但不适用于其他图像。我建议您使用像Otsu这样的方法进行二值化,它分别为每个图像确定最佳阈值

colormap([0 0 0;0.5 0.5 0.5]);