图像处理核心那是算法,至于使用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%