所谓灰度图像,即指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

效果:

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('复原后图像');

结果:

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一个好的教程:

参考文献:

matlab 灰度级位平面,灰度图像的8位平面分解相关推荐

  1. 灰度图像的8位平面分解

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

  2. 位平面提取 matlab,哪位高手知道图像位平面移位在Matlab中如何实现吗?[图像图形(图象)论坛]...

    >> help move move.m not found. >> help immove immove.m not found. >> help imove im ...

  3. matlab练习程序(三阶张量T-QR分解)

    转自:http://www.cnblogs.com/tiandsp/archive/2012/10/31/2747971.html 这里所谓的张量和黎曼那里的张量是不一样的,那个张量更多的用在物理上, ...

  4. Matlab高光谱遥感数据处理与混合像元分解实践技术

    光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...

  5. 数值计算方法(Numerical Methods)MATLAB实现(1)---Gauss消元法、Doolittle分解

    (1)-高斯消元法        1.1 消去阶段    假设系数矩阵前k行已被转化为上三角矩阵形式.当前枢轴方程(作为被减量的方程) 是第K行的方程,其下所有方程都待转换为下三角形式.     假设 ...

  6. Matlab 高光谱遥感数据处理与混合像元分解

    教程从基础.方法.实践三方面对高光谱遥感进行讲解.基础篇,站在学员的角度去理解"高光谱",用大家能听的懂的语言去讲述高光谱的基本概念和理论,帮助学员深入理解这项技术的底层科学机理. ...

  7. Matlab高光谱遥感数据处理与混合像元分解

    光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...

  8. matlab提取图像低频,获取图像频域并分解为高低频(MATLAB)

    获取图像频域并分解为高低频(MATLAB) 我们展示两种频域分解方案:DCT或SWT变换.代码需要适配. 1. DCT变换 %// Load an image Orig = im2double((im ...

  9. matlab 彩色图像、灰度图像、二值图像和索引图像

    彩色图像:每个像素由R.G.B三个分量表示,每个通道取值范围0~255.数据类型一般为8位无符号整形. 灰度图像:每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度. 二值 ...

最新文章

  1. Xamarin SimplerCursorAdapter 适配器(三)
  2. 【阿里云产品公测】高大上的搜索服务OpenSearch, 你值得拥有!
  3. echarts在360中以及IE8浏览器不兼容:解决方案
  4. Go 语言简介(上)— 语法
  5. ReportViewer改变图表类型
  6. 高可用Redis(八):Redis主从复制
  7. AndroidStudio安卓原生开发_启动系统的activity_短信发送activity_摄像头activity_电话拨打activity---Android原生开发工作笔记94
  8. SCPPO(十一):网站发布中的问题锦集—ReportViewer版本问题
  9. 【Java】synchronized与lock的区别
  10. 计算机插本2a院校,广东省专插本2A院校有哪些
  11. 数论在计算机科学中的应用,近世代数思想方法在数论中的应用
  12. 禅道怎样添加开发人员
  13. 黑客来势汹汹,受害者能以牙还牙“黑回去”吗
  14. 全球及中国没药香精油行业研究及十四五规划分析报告
  15. 好好学习,天天向上------融会贯通
  16. 线性回归中的最小二乘法和梯度下降法比较
  17. spring事务管理总结
  18. C语言GUI编程之数字记忆游戏——项目构建
  19. anaconda 的安装及环境配置、anaconda创建新的环境、jupyter代码高亮及自动补全、改变jupyter注释的字体及颜色
  20. 刚子扯谈 活着 没那么简单

热门文章

  1. matlab在线_正版MATLAB向中国人民大学全校师生免费开放!
  2. 写给想要入行或刚刚入行程序员的二十条至理格言
  3. matlab cftool光滑曲线导出为什么就不光滑了_快速傅里叶变换(FFT)中为什么要“补零”?...
  4. Clickhouse 分布式子查询——global in/join(慎用慎用)
  5. 记一次阿里云黑客攻击事件
  6. SQL count详细用法
  7. 电脑开机黑屏提示:ERROR 0199:System Security-Security password retry count exceeded(by 星空武哥)
  8. Unity制作2D战棋小游戏
  9. ​嘉楠往事:浮沉八载,如今剑指美股
  10. Pyghon学习记录