二进制或连续图像?

Sam*_*Sam 0 matlab image image-processing

我有一个图像,我想在MATLAB中使用它.但是,我正在寻找一种方法,通过该方法我能够自动发现我的图像是二进制(0和1)或连续的.有一段代码的解决方案吗?

gev*_*ang 6

对于初学者,你不能正式谈论二进制或连续图像.数字图像具有一组离散值,取决于它们的格式和像素逐位表示,取自有限值集.

例如,"二进制"图像将具有2级灰度(白色和黑色),由0或1或任何其他值组合表示,例如,级别0,255的图像仍然是"二进制".用于8位表示(即每像素8位)的灰度图像将具有2^8min0(黑色)到max255(白色)的离散强度级别.

因此,您可以测试输入图像中唯一灰度级别的数量,即:

I = imread(image_filename); 
if length(unique(I))==2, 
    flag_binary = true 
end 
Run Code Online (Sandbox Code Playgroud)

示例:

I = imread('cameraman.tif');
>> disp(flag_binary)
     0
I = imread('circles.png');
>> disp(flag_binary)
     1
Run Code Online (Sandbox Code Playgroud)

  • @Sam:"不起作用" - >它怎么会失败?gevang刚刚展示它适用于灰度**和**二进制图像 (2认同)