matlab 灰度级位平面,灰度图像的8位平面分解

所谓灰度图像,即指8位256颜色的图像。将图像的每一位分别取出来,我们就可以将一幅图像分解开来,形成8幅图像。下面我们分别介绍使用matlab分解图像与使用halcon/c++分解图像的方法。

matlab8位分解

clc;

clear all;

A = imread('lena.tif');

% 显示原始图像

subplot(3,3,1);

imshow(A);title('原始图像');

% 显示8个位平面图像

for i=8:-1:1

A_bitplane = bitshift(bitget(A,i),i-1);

subplot(3, 3, 9-i+1);

imshow(A_bitplane);

title(['位平面 ' num2str(i)]);

end

效果:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

matlab8位合并复原

clc;

clear all;

A = imread('lena.tif');

Array=cell(1,8);

% 显示8个位平面图像

for i=8:-1:1

Array{i} = bitshift(bitget(A,i),i-1);

end

%%%复原

%%定义全0矩阵

[M,N]=size(Array{1});

B=zeros(M,N,'uint8');

for i=1:8

B=bitset(B,i,bitget(Array{i},i));

end

figure;

subplot(1,2,1);

imshow(A);title('原始图像');

subplot(1,2,2)

imshow(B);title('复原后图像');

结果:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

halcon分解

方法一,自己实现

void Bit()

{

using namespace Halcon;

cout << endl << "Shifting & cutting out bit values:" << endl;

HByteImage image("mreut");

HWindow w(0,0,image.Width(),image.Height());

w.SetPart(0,0,image.Height()-1,image.Width()-1);

image.Display(w);

int i;

cout << "- cutting out bit slices" << endl;

for (i=0; i<8; i++)

{

HRegion reg = (image & (1<

w.ClearWindow();

reg.Display(w);

cout << " & bit " << i << endl;

}

}

方法二,使用自带函数

void Bit()

{

using namespace Halcon;

cout << endl << "Shifting & cutting out bit values:" << endl;

HByteImage image("mreut");

HWindow w(0,0,image.Width(),image.Height());

w.SetPart(0,0,image.Height()-1,image.Width()-1);

image.Display(w);

int i;

cout << "- cutting out bit slices2" << endl;

for (i = 0; i < 8; i++)

{

HRegion reg = (image.BitSlice(i+1)) != 0; //按照位切片

w.ClearWindow();

reg.Display(w);

cout << " & bit " << i << endl;

}

}

附加matlab一个好的教程:

参考文献:

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值