二值、灰度和彩色图像处理

  • 1. 二值、灰度图像的转换
  • 2. 彩色图像的表示
  • 3. 位图切割

——————————————————————————
——————————————————————————

图像:用二维函数f(x,y)表示,f(x,y)是点(x,y)的幅值。

  • 灰度级:0~255 ==》256个灰度级
  • 层次:图像实际拥有灰度级的数量
  • 对比度:灰度反差的大小
  1. 二值图像(binary image):图像上的每一个像素只有两种可能的取值或灰度等级状态。每个像素只需要1Bit就可以完整存储信息
  2. 灰度图像:灰度图只包含一个通道的信息,每个采样像素需要8位存储信息。f(x,y)取值在0~255
  3. 彩色图像:3个f(x,y) 每个像素通常是由红(R)、绿(G)、蓝(B)三个分量来表示的,分量介于(0,255)。

1. 二值、灰度图像的转换

matlab代码:

%原图
data = imread('lena.jpg');  %读取lena.jpg图片
subplot(221);  %两行两列的画布上,这个图象在第一个位置%subplot(2,2,[1 3]) 占1和3的位置(不对称图案)
imshow(data);   %显示图片%灰度图
gdata = rgb2gray(data);  %灰度化处理
subplot(222);
imshow(gdata);%二值图
n = graythresh(gdata);  %获得一个合适的阈值 阈值取值范围【0,1】
bw = im2bw(data, n);  %将灰度图像转变成二进制图像bw
subplot(223);
imshow(bw);

结果图:

2. 彩色图像的表示

彩色RGB图像用三维数组表示,最后一维长度为3(1,2,3分别表示RGB三个分量),对于每一个分量,数值范围也是0~255。红、绿、蓝三个通道的缩略图,都是以灰度显示的,用不同的灰度色阶来表示“ 红,绿,蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255,0表示亮度最低,255表示亮度最亮。只有三个通道同时有值才可以显示出彩色(如红色通道显示为红色)。

image = imread('lennacolor.png');
image_r=image(:,:,1);
image_g=image(:,:,2);
image_b=image(:,:,3);
zero=zeros(512,512);  %生成512*512全零矩阵
R=cat(3,image_r,zero,zero);  %将输入的3个数组image_r,zero,zero按照数组维度3连接起来
G=cat(3,zero,image_g,zero);
B=cat(3,zero,zero,image_b);
RGB=cat(3,image_r,image_g,image_b);
subplot(2,2,1),imshow(R),title('Red component');
subplot(2,2,2),imshow(G),title('green component');
subplot(2,2,3),imshow(B),title('blue component');
subplot(2,2,4),imshow(RGB),title('original image');

F = imread('lennacolor.png');
subplot(2,2,1),imshow(F(:,:,1)),title('红色分量');
subplot(2,2,2),imshow(F(:,:,2)),title('绿色分量');
subplot(2,2,3),imshow(F(:,:,3)),title('蓝色分量');
subplot(2,2,4),imshow(F),title('RGB');

3. 位图切割

由于灰度级L=2^k,是由2的次方构成,每个像素值看作是由K个二进制数组成的。于是每个平面k-1,k-2,…,1,0 中的每一个像素值都等于该像素在该平面的项数值。

f=imread('lena.jpg');
g=double(f);
L1=mod(g,2);
L2=mat2gray(mod(g./2,2));
L3=mat2gray(mod(g./(2.^2),2));
L4=mat2gray(mod(g./(2.^3),2));
L5=mat2gray(mod(g./(2.^4),2));
L6=mat2gray(mod(g./(2.^5),2));
L7=mat2gray(mod(g./(2.^6),2));
L8=mat2gray(mod(g./(2.^7),2));
figure()
subplot(3,3,1);imshow(L1),title('第一层');
subplot(3,3,2);imshow(L2),title('第二层');
subplot(3,3,3);imshow(L3),title('第三层');
subplot(3,3,4);imshow(L4),title('第四层');
subplot(3,3,5);imshow(L5),title('第五层');
subplot(3,3,6);imshow(L6),title('第六层');
subplot(3,3,7);imshow(L7),title('第七层');
subplot(3,3,8);imshow(L8),title('第八层');
subplot(3,3,9);imshow(f),title('原图');

数字图像处理——二值、灰度和彩色图像,位图切割相关推荐

  1. Win8Metro(C#)数字图像处理--2.31灰度拉伸算法

    Win8Metro(C#)数字图像处理--2.31灰度拉伸算法 原文:Win8Metro(C#)数字图像处理--2.31灰度拉伸算法  [函数名称] 灰度拉伸函数GrayStretchProces ...

  2. 数字图像处理二维码识别 python+opencv实现二维码实时识别

    数字图像处理二维码识别 python+opencv实现二维码实时识别 特点: (1)可以实现普通二维码,条形码: (2)解决了opencv输出中文乱码的问题 (3)增加网页自动跳转功能 (4)实现二维 ...

  3. java图像处理:灰度化,二值化,降噪,切割,裁剪,识别,找相似等

    前段时间做爬虫,涉及到对图片验证码的破解,这里罗列一些常用的图像处理方法,都很简单并没用到什么复杂的算法,所以不涉及opencv,都是一些直接对rgb像素点的操作,很简单也很好理解,至于识别直接用的t ...

  4. 图像处理-二值形态学运算

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-10.html 数学形态学 数学形态学(Mathematical ...

  5. 手写数字图片二值化转换为32*32数组。

    最近课设外加生病,本来打算在上一篇机器学习使用k-近邻算法改进约会网站的配对效果.就打算写的一直没有时间.按照<机器学习实战>的流程,手写数字识别是kNN中的最后一部分,也是一个比较经典的 ...

  6. [matlab数字图像处理8]提取一副彩色图像中红色,用HIS模型处理,RGB模型对比显示

    一. 问题描述 提取一副彩色图像中红色,用HIS模型处理,RGB模型对比显示: 二. 求解思路 彩色图像的处理有两种主要方法,RBG(红,绿,蓝)和HIS(色调,饱和度,亮度),matlab可以直接读 ...

  7. 数字图像处理|Matlab-灰度和彩色图像的离散余弦变换-通过离散余弦逆变换,还原出图像

    Matlab-灰度和彩色图像的离散余弦变换 代码链接:https://download.csdn.net/download/qq_43571150/12033265 问题1:对输入的灰度和彩色图像进行 ...

  8. 数字图像处理 中值滤波 MATLAB实验

    一.原理_中值滤波 中值滤波的基本思想是将图像中每个像素的灰度值用其邻域内像素灰度的中值代替,它是一种非线性平滑滤波算法. 设加噪图像为 f(x,y) ,经中值滤波处理后的图像为g(x,y) ,则: ...

  9. 数字图像处理——中值滤波及其改进算法

    一.算法介绍 中值滤波器是非线性滤波器的一个例子,它在保留图像特征方面非常有效. 但是,滤波器的窗口大小直接影响中值滤波器的性能. 较小的窗口保留了特征,但会导致噪声抑制的减少. 在较大窗口的情况下, ...

最新文章

  1. 面试官问:请拿出一段体现你水平的代码,我该如何回答?
  2. Android动态修改选中和不选中的Button图片颜色
  3. winform C#的委托事件在winform窗体中传值,也可用于刷新另一窗体(窗体A刷新窗体B)...
  4. 走进移动web开发的四大框架
  5. Modules(最小树形图)
  6. Fork_Join - Java多线程编程
  7. 支持64位系统的XOR加密后内存加载PE绕过杀毒软件
  8. oracle查询时根据查询的时间字段改变状态字段的值
  9. 计算机网络网际协议实验报告,计算机网络课程网际协议IP地址实验报告.doc
  10. Affinity Publisher for Mac(桌面排版神器)中文版
  11. appfabric 性能监视篇
  12. Unmapped Spring configuration files found. Please configure Spring facet or use ‘Create Default Con
  13. linux怎样安装麒麟双系统,手把手教您win10系统装麒麟系统双系统的解决办法
  14. 整除理论与线性丢番图方程相关
  15. ssh免密码登录全过程
  16. 给高特键轴开盖的操作技巧
  17. 先进过程控制之一:浅说APC
  18. 设计模式的初探--工厂模式
  19. linux moxa 多串口卡_在FC6 Linux下安装Moxa多串口卡的问题
  20. 【​观察】vivo X21跃升同价位最热机型 背后是坚持科技创新的胜利

热门文章

  1. Android应用跳转到微信扫一扫
  2. Hadoop和Spark简单概述
  3. springAOP面试题
  4. 委托代理机构申请专利怎么做?
  5. ffmpeg的amix混音改进
  6. 13、Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
  7. 【Iterator模式】C++设计模式——迭代器
  8. uniapp 生成分享图片(图片+二维码),并保存到本地相册 功能实现
  9. IOS开发之——IOS模拟器调试蓝牙BLE
  10. 爬虫入门案例——爬取电影信息