matlab实现 基于若干个高阶比特平面的图像重构 代码

上一篇我们用matlab实现了图像的比特平面分层,并且定义一个用于比特平面分层的函数,这一片文章我们将要用到上次定义的比特平面分层函数,可以前往https://blog.csdn.net/weixin_37139761/article/details/83386858 查看比特我们定义的函数。

 

题目:基于上一篇比特平面分层的结果,利用前3个或4个高阶比特平面重构图像image_construct (EXP3C.tif),并对比重构图像与相应原图像的差异性。

提示:可采用图像相减获取原图像与重构图像的差值图像,以对比和分析原图像及重构图像的差异性,如重构图像缺失的主要信息是什么。

步骤:

1. 使用上一篇比特平面分层实现的函数获得图像的8比特平面图像

2. 重构前4比特平面,即使用第n个比特平面的像素乘以常数2的n-1次方相加,得到前n比特平面重构后的图像

3. 使用原图像减去重构前4比特平面,得到差值图像

实现效果演示:

为了演示重构前后的对比效果,重构了前6比特平面和前4比特平面,输出并作对比。

实现源代码:

clc;clear;close all;

img1 = imread('EXP3B.tif');
img2 = myImageBitPlaneSlicing(img1);%获取图像的8比特平面
img3 =  img2(:,:,1)*1 + img2(:,:,2)*2 + img2(:,:,3)*4 + img2(:,:,4)*8;%重构前4比特图像
img3 = uint8(img3);%将图像转换为和原图相同的类型
img4 = img1 - img3;%获取差值图像

%显示图像
figure('NumberTitle', 'off', 'Name', '实验一第三题'); 
subplot(2,3,1);imshow(img1);title('EXP3B.tif原始图像');
subplot(2,3,2);imshow(img3);title('4比特平面重构');
subplot(2,3,3);imshow(img4);title('差值图像');

img1 = imread('EXP3C.tif');
img2 = myImageBitPlaneSlicing(img1);%获取图像的8比特平面
img3 =  img2(:,:,1)*1 + img2(:,:,2)*2 + img2(:,:,3)*4 + img2(:,:,4)*8;%重构前4比特图像
img3 = uint8(img3);%将图像转换为和原图相同的类型
img4 = img1 - img3;%获取差值图像

%显示图像
subplot(2,3,4);imshow(img1);title('EXP3C.tif原始图像');
subplot(2,3,5);imshow(img3);title('4比特平面重构');
subplot(2,3,6);imshow(img4);title('差值图像');

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值