图像处理基本算法比特分层

图像处理核心那是算法,至于使用OpenCV还是matlab还是MFC,现在看来真的都无所谓

下面是对一张灰度图片进行比特分层,看一下一张图片的8bit共有几个bit是真正起作用的,

这对以后的图像压缩具有很大的指导意义。

matlab源码:

A  =imread('huidu.bmp')
A1 = A 
subplot(3,3,1)
imshow(A)
for n = 1:8
    for i = 1:256
     for j = 1 :256
         if(A(i,j) > 8*2^(n-1) && A(i,j) < 8*2^n )
             A1(i,j) = A(i,j);
         else A1(i,j) = 0;
             
         end
     end 
    end 
    subplot(3,3,n+1)
    imshow(A1)
end 



由图片可知,事实上几乎只有第3 4 5bit是有效地,其余的几个bit几乎不起作用。

那下面我们3 4 5bit合并进行显示这张图片,看一下会显示出多少的细节。

A2 = A
subplot(2,2,1)
imshow(A)
for n = 3:5
    for i = 1:256
     for j = 1 :256
         if(A(i,j) > 8*2^(n-1) && A(i,j) < 8*2^5 )
             A1(i,j) = A(i,j);
         else A1(i,j) = 0;
             
         end
     end 
    end 
    subplot(2,2,n -1)
    imshow(A1)
end 

四张图片分别为:

原图,第3 4 5bit合成,第4 5 bit合成,第5bit 合成

由图像可知:采用第3 4 5 bit这3bit已经基本可以显示大部分的图像细节,如果用于压缩,

可以压缩至37.5%




原文地址:https://www.cnblogs.com/libing64/p/2878740.html