基于matlab实现的利用位平面渐近加载图像源代码

本文详细介绍了如何使用MATLAB实现位平面分解,将一个8位灰度图像分解为8个位平面,并通过渐近加载的方式逐步叠加这些位平面,以可视化方式展示图像细节的逐渐显现过程。

位平面原理

一个八位的灰度图能够分离出八个位平面,即2^8=256的灰度级能够用八个二进制数0或1表示,每个位平面仅有0/1组成,如原图中灰度值为80的点,由于80 = 01010000,因此,在第五个和第七个位平面中对应点的值是1,其余位平面对应点的值为0,代表80 = 2^4 + 2^6.

matlab代码:

% bitplane-loading
clear all
close all
img = imread('Lena.bmp');
[h,w] = size(img);
subplot(3,3,1);
imshow(img,[]);
title('原始图像');
% 渐近加载
res = im2uint8(zeros(h,w));     %转换类型
for k=1:8
    tmp = bitget(img, 8-k+1); 
    %tmp = double(tmp); 
    tmp1 = im2uint8(zeros(h,w));%转换类型
    for i = 1:h
        for j = 1:w
            tmp1(i,j) = power(2,8-k);  %%初始化值都是2^(8-k)的矩阵,实际传输可预先初始化好以更快显示图像
        end
    end
    res = res + tmp.*tmp1;             %%渐近加载图像
    subplot(3,3,k+1);
    imshow(res,[]);
    ind = num2str(k);
    imti = ['已叠加',ind,'个位平面'];
    title(imti);
end 

结果如图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值