MATLAB彩色图像处理

2023-05-16

MATLAB中的彩色图像表示法

MATLAB图像处理工具箱(IPT)支持两种类型的彩色图像表示法:RGB图像和索引图像。
   a)RGB图像RGB图像存储为大小为3D的数组,其中图像高度和图像宽度。
   MATLAB函数imread用于读取图像文件。 例如,a = imread('peppers.png'); 假设a是RGB图像。
   位置(行= y,列= x)的像素颜色存储在a(y,x,:)中。
   数组项a(y,x,1)是红色值,a(y,x,2)是绿色值,而a(y,x,3)是蓝色值。

要提取三个分量(红色,绿色和蓝色),请使用R = a(:,:,1);  G = a(:,:,2);  B = a(:,:,3); 假设R,G,B是三个颜色分量,我们可以使用b = cat(3,R,G,B)来形成RGB图像。

b)索引图像索引图像由两部分组成:

尺寸为2-D的Hxw矩阵,其中为H图像高度,W为图像宽度。
   颜色图。 颜色图是大小为mX3的二维矩阵,其中每一行存储一种颜色,并且m是颜色的总数。
   假设X是索引图像,并且map是相应的颜色图。
   如果X(x,y)=k为,则像素位置(行= y,列= x)的颜色为:map(k ,:)

从RGB图像到索引图像的转换

MATLAB函数rgb2ind可用于将RGB图像转换为索引图像。此函数支持三种转换方法

:i)均匀量化、ii)最小方差量化和iii)颜色映射近似。
均匀量化:[X,map]=rgb2ind(RGB,tol)使用统一量化将RGB图像转换为索引图像X。输出映射最多包含颜色,其中参数tol必须介于0.0和1.0(公差)之间。例如,如果tol=0.1,此函数将每个颜色维度划分为10个间隔。整个颜色空间将有10^3个立方体,每个立方体表示为一种颜色。

a = imread('peppers.png');
[X, map] = rgb2ind(a, 0.1);

最小方差量化:[X,map]=rgb2ind(RGB,n)使用最小方差量化将RGB图像转换为索引图像X。输出映射最多包含n种颜色,其中n是介于1和216之间的整数输入参数。以下命令仅使用100种颜色表示图像a:[X,map]=rgb2ind(a,100);

颜色贴图近似值:X=rgb2ind(RGB,map)将RGB图像转换为索引图像X。它将RGB中的每种颜色与预定义颜色贴图中最近的颜色匹配。

练习:考虑输入图像peppers.png.
编写MATLAB代码,使用统一量化生成索引图像,公差为0.5。输出颜色映射中n的颜色总数是多少?
编写MATLAB代码,使用最小方差量化生成索引图像。输出颜色的数量应该与均匀量化中的相同。
使用MATLAB函数子图像并排显示两个输出图像。哪个图像的视觉质量更好?为什么? 

颜色空间

a)在MATLAB中使用RGB作为主颜色空间来表示图像(图7.3)。然而,还有许多其他颜色空间。在本节中,我们将研究MATLAB支持的另外两个空间:YCbCr和HSV。 

YCbCr颜色空间这种颜色空间广泛应用于数字图像和视频压缩(如JPEG、MPEG)。通过线性变换,可以从RGB中得到YCbCr

在MATLAB中,使用IPT函数rgb2ycbcr完成颜色转换:im_ycbcr=rgb2ycbcr(im_rgb);

要从YCbCr颜色空间转换到RGB空间,请使用MATLAB函数ycbcr2rgb:im_rgb=ycbcr2rgb(im_YCbCr);

HSV颜色空间HSV由三个部分组成:

  • 色调(H)是主色。[0,360o]中的每个H值对应一种颜色,例如红色、绿色、蓝色或黄色。
  • 饱和度是原色的饱和度。对于给定的H,S=0表示没有颜色,S=1表示100%颜色。
  • 值(V)为亮度。V=0为最小亮度,V=1为最大亮度。 

RGB图像可以使用MATLAB函数rgb2hsvim_hsv = rgb2hsv(im_rgb)

转换为HSV图像;逆变换是通过MATLAB函数hsv2rgb:im_rgb = hsv2rgb(im_hsv);执行的;

练习:考虑形象悉尼.jpg’.
编写MATLAB代码来显示图像的Y、Cb、Cr、H、S、V颜色分量。
编写MATLAB代码创建并显示输出图像,其中S分量增加3倍,而H和V分量保持不变。s=s*3 hv不变 

7.5基于颜色的图像分割

a)分割是根据颜色、形状或纹理等标准将图像分割为同质区域的过程。在本节中,我们将学习一种基于RGB颜色的图像分割技术。
b) 假设是一组预定义的N行向量。其中的每一行向量都是一种有三个元素(红、绿、蓝)的颜色:(7.11)平均向量和协方差矩阵可以在MATLAB中计算如下: 

m = mean(S,1) C = cov(S)

对于任意像素颜色x:

和之间的欧几里德距离定义为。(7.12)

和之间的马氏距离定义为。(7.13)

如果距离小于预定义阈值,则认为像素颜色与中的颜色相似。

练习E1。彩色量化编写MATLAB脚本对彩色图像进行处理辣椒.png.
计算出现在图像中的不同颜色n的数量。提示:您可以使用MATLAB函数unique来查找矩阵中不同的行或列。
应用最小方差量化,将不同颜色的数量减少一半,并将输出图像保存为辣椒色_量化.bmp.
通过并排显示输入和量化图像,比较它们。

E2。图像分割编写一个MATLAB脚本来执行以下任务。
a) 读取输入图像辣椒.png到一个MATLAB变量a中。
b) 显示图像并从输入图像中的对象中选择像素颜色(图7.4)。
S=impixel(a)单击鼠标左键选择对象中的N个像素。按回车键停止选择。
c) 计算集合S的平均向量和协方差矩阵。
d) 通过处理输入图像中的所有像素来生成输出图像。如果从像素到集合S的欧几里德距离小于阈值,则保持像素颜色不变。否则,将像素颜色更改为白色(红色=绿色=蓝色=255)。
e) 通过处理输入图像中的所有像素来生成输出图像。如果从像素到集合S的马氏距离小于阈值,则保持像素颜色不变。否则,将像素颜色更改为白色(红色=绿色=蓝色=255)。与(d)部分的结果进行比较。
f) 测试脚本中N和的不同值,并对结果进行注释。 

感觉有用的博客https://www.cnblogs.com/IClearner/p/6754821.html 

实验代码

https://download.csdn.net/download/sereasuesue/14915881

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB彩色图像处理 的相关文章

  • argparse 命令行选项、参数和子命令解析器

    最近看到很多论文代码都是用解析器写的 argparse 命令行选项 参数和子命令解析器 argparse 模块可以让人轻松编写用户友好的命令行接口 程序定义它需要的参数 xff0c 然后 argparse 将弄清如何从 sys argv 解
  • torch.unsqueeze和 torch.squeeze() 详解

    1 torch unsqueeze 详解 torch unsqueeze input dim out 61 None 作用 xff1a 扩展维度 返回一个新的张量 xff0c 对输入的既定位置插入维度 1 注意 xff1a 返回张量与输入张
  • Android中获取唯一的id

    文章目录 Android唯一设备ID现状IMEIMAC地址唯一Id实现方案那些硬件适合硬件标识工具类 Android唯一设备ID现状 设备ID xff0c 简单来说就是一串符号 xff08 或者数字 xff09 xff0c 映射现实中硬件设
  • debian虚拟机下如何安装增强功能

    1 安装gcc和kernel headers gcc有可能默认安装的有 xff08 如果没有还需要安装gcc xff09 xff0c 但是还需要安装build essential sudo apt get install build ess
  • PyTorch学习系统之 scatter() 函数详解 one hot 编码

    torch Tensor scatter scatter 和 scatter 的作用是一样的 xff0c 只不过 scatter 不会直接修改原来的 Tensor xff0c 而 scatter 会 torch Tensor scatter
  • 最新RNN相关模型

    最近在看最新RNN相关模型 找到很多论文 Fundamentals of Recurrent Neural Network RNN and Long Short Term Memory LSTM network 递归神经网络 xff08 R
  • 知识追踪模型的应用

    背景 MOOC 近年来 xff0c 随着在线学习系统在教育环境中越来越普及 xff0c 在线学习人数越来越多 xff0c 教育者不可能追踪每一个学习者的知识状态并提供个性化的学习指导 xff1b 在线学习系统中的知识需要学习者通过各种冗余信
  • 自然语言处理之语料库

    语料库 定义 xff1a 语料库 corpus 就是存放语言材料的仓库 语言数据库 xff09 语料库技术的发展 早期 xff1a 语料库在语言研究中被广泛使用 xff1a 语言习得 方言学 语言教学 句法和语义 音系研究等 沉寂时期 xf
  • 知识追踪入门系列-论文资料汇总

    Paper xff1a 知识追踪相关论文 下载论文和代码见reference第一个链接 Deep Knowledge Tracing 首次提出将RNN用于知识追踪 xff0c 并能够基于复杂的知识联系进行建模 xff08 如构建知识图谱 x
  • 知识追踪方法比较

    DKT xff1a Deep knowledge tracing In Advances in neural information processing systems 这是一种开创性的方法 xff0c 它使用单层LSTM模型来预测学生的
  • 机器学习 注意力 笔记资料贴

    Self Attention与Transformer详解 https zhuanlan zhihu com p 47282410 写的非常详细 https jalammar github io illustrated transformer
  • 图像的几何变换maketform imtransform imresize imcrop

    背景 几何变换是将图像像素从一个位置映射到另一个位置 几何变换有五种常见类型 xff1a 剪切变换 平移变换 缩放变换 旋转变换和投影变换 它们如图4 1所示 在该图中 xff0c 原始图像显示在 A 中 xff0c 而变换后的图像显示在
  •  决策树(Decision Tree)原理及实现

    决策树 xff08 Decision Tree xff09 原理及实现 一 算法简介 1 1 基本模型介绍 决策树是一类常见的机器学习方法 xff0c 可以帮助我们解决分类与回归两类问题 模型可解释性强 xff0c 模型符合人类思维方式 x
  • Python 一维及多维数组及基本操作

    2 创建一般的多维数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import numpy as np a 61 np array 1 2 3 dty
  • java操作word方式 设置国内镜像命令

    java操作word方式还有 个人认为通过jacob最好 xff0c 自己可以扩展 xff0c 网上除poi之外几乎全是java com技术实现的 1 Apache POI Java API To Access Microsoft Form
  • matlib 多种方法实现图像旋转不使用imrotate函数

    原理 方法很棒https blog csdn net qq 41140138 article details 104737705 方法一 function g 61 rotate image1 f theta M N 61 size f t
  • MATLAB实现满秩LU/QR等分解 及求方程组的解 范数

    矩阵分解 矩阵的LR分解 方阵A是非奇异的 clear A 61 2 1 4 4 3 13 2 2 20 format rat L U 61 lu A L U P 61 lu A 矩阵QR分解 Q R 61 qr A xff09 R为上三角
  • Deep Knowledge Tracing(DKT)具体实现

    有关dkt可参考的文章http blog kintoki me 2017 06 06 tensorflow dkt 问题陈述 传统的评价方法 xff0c 如考试和考试 xff0c 只允许在考试结束后对学生进行评价 因此 xff0c 这些方法
  • pandas数据预处理 缺失值

    缺失值的分类 按照数据缺失机制可分为 xff1a 可忽略的缺失 完全随机缺失 missing completely at random MCAR xff0c 所缺失的数据发生的概率既与已观察到的数据无关 也与未观察到的数据无关 随机缺失 m
  • 数据预处理之数据清洗案例

    建议学习文章 xff1a https zhuanlan zhihu com p 111499325 https mp weixin qq com s jNoXHO4qU34gcha4zOGRLA https mp weixin qq com

随机推荐