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
效果:
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位平面分解相关推荐
- 灰度图像的8位平面分解
所谓灰度图像,即指8位256颜色的图像.将图像的每一位分别取出来,我们就可以将一幅图像分解开来,形成8幅图像.下面我们分别介绍使用matlab分解图像与使用halcon/c++分解图像的方法. mat ...
- 位平面提取 matlab,哪位高手知道图像位平面移位在Matlab中如何实现吗?[图像图形(图象)论坛]...
>> help move move.m not found. >> help immove immove.m not found. >> help imove im ...
- matlab练习程序(三阶张量T-QR分解)
转自:http://www.cnblogs.com/tiandsp/archive/2012/10/31/2747971.html 这里所谓的张量和黎曼那里的张量是不一样的,那个张量更多的用在物理上, ...
- Matlab高光谱遥感数据处理与混合像元分解实践技术
光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...
- 数值计算方法(Numerical Methods)MATLAB实现(1)---Gauss消元法、Doolittle分解
(1)-高斯消元法 1.1 消去阶段 假设系数矩阵前k行已被转化为上三角矩阵形式.当前枢轴方程(作为被减量的方程) 是第K行的方程,其下所有方程都待转换为下三角形式. 假设 ...
- Matlab 高光谱遥感数据处理与混合像元分解
教程从基础.方法.实践三方面对高光谱遥感进行讲解.基础篇,站在学员的角度去理解"高光谱",用大家能听的懂的语言去讲述高光谱的基本概念和理论,帮助学员深入理解这项技术的底层科学机理. ...
- Matlab高光谱遥感数据处理与混合像元分解
光谱和图像是人们观察世界的两种方式,高光谱遥感通过"图谱合一"的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测 ...
- matlab提取图像低频,获取图像频域并分解为高低频(MATLAB)
获取图像频域并分解为高低频(MATLAB) 我们展示两种频域分解方案:DCT或SWT变换.代码需要适配. 1. DCT变换 %// Load an image Orig = im2double((im ...
- matlab 彩色图像、灰度图像、二值图像和索引图像
彩色图像:每个像素由R.G.B三个分量表示,每个通道取值范围0~255.数据类型一般为8位无符号整形. 灰度图像:每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度. 二值 ...
最新文章
- Xamarin SimplerCursorAdapter 适配器(三)
- 【阿里云产品公测】高大上的搜索服务OpenSearch, 你值得拥有!
- echarts在360中以及IE8浏览器不兼容:解决方案
- Go 语言简介(上)— 语法
- ReportViewer改变图表类型
- 高可用Redis(八):Redis主从复制
- AndroidStudio安卓原生开发_启动系统的activity_短信发送activity_摄像头activity_电话拨打activity---Android原生开发工作笔记94
- SCPPO(十一):网站发布中的问题锦集—ReportViewer版本问题
- 【Java】synchronized与lock的区别
- 计算机插本2a院校,广东省专插本2A院校有哪些
- 数论在计算机科学中的应用,近世代数思想方法在数论中的应用
- 禅道怎样添加开发人员
- 黑客来势汹汹,受害者能以牙还牙“黑回去”吗
- 全球及中国没药香精油行业研究及十四五规划分析报告
- 好好学习,天天向上------融会贯通
- 线性回归中的最小二乘法和梯度下降法比较
- spring事务管理总结
- C语言GUI编程之数字记忆游戏——项目构建
- anaconda 的安装及环境配置、anaconda创建新的环境、jupyter代码高亮及自动补全、改变jupyter注释的字体及颜色
- 刚子扯谈 活着 没那么简单
热门文章
- matlab在线_正版MATLAB向中国人民大学全校师生免费开放!
- 写给想要入行或刚刚入行程序员的二十条至理格言
- matlab cftool光滑曲线导出为什么就不光滑了_快速傅里叶变换(FFT)中为什么要“补零”?...
- Clickhouse 分布式子查询——global in/join(慎用慎用)
- 记一次阿里云黑客攻击事件
- SQL count详细用法
- 电脑开机黑屏提示:ERROR 0199:System Security-Security password retry count exceeded(by 星空武哥)
- Unity制作2D战棋小游戏
- ​嘉楠往事:浮沉八载,如今剑指美股
- Pyghon学习记录