Matlab彩色图像转索引图像

索引图像

索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像包括一个数据矩阵X,一个调色板矩阵map,也称为颜色映像矩阵。其中,数据矩阵X可以是8位无符号整型、16位无符号整型或双精度类型。调色板矩阵map是一个m×3的数据阵列, 如矩阵元素值域为[0,255],则map矩阵的大小为256×3,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。

索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向调色板矩阵map进行索引,例如,值1指向调色板矩阵map中的第一行,值2指向第二行,以此类推,如某一像素的灰度值为64,则该像素就与调色板矩阵map中的第64行建立了映射关系,该像素在屏幕上的实际颜色由第64行的调色板矩阵map组合决定。

如下图所示索引图像,图(a)索引图像其中红色圈框起来的部位的数据矩阵X,如图(b)所示,调色板矩阵map如图(c)所示,其中一点的索引号为18,在调色板矩阵map中对应第18行所定义的颜色,其RGB颜色实际为(0.1608,0.3529,0.0627),代表RGB三个分量的比重。

 示例程序

%彩色图像转索引图像
I = imread('sherlock.jpg');            %读取图片
[X1,map1] = rgb2ind(I,256);          %RGB图像转索引图像,图像颜色数量为256种
[X2,map2] = rgb2ind(I,0.2);          %RGB图像转索引图像,图像颜色数量为(1/0.2+1)^3种
map3 = colorcube(256);             %RGB图像转索引图像,图像颜色数量为指定的256种
X3 = rgb2ind(I,map3); 
subplot(2,2,1),imshow(I),title('原始图像'); 
subplot(2,2,2),imshow(X1,map1),title('最小方差法转换后的索引图像'); 
subplot(2,2,3),imshow(X2,map2),title('均匀量化法转换后的索引图像'); 
subplot(2,2,4),imshow(X3,map3),title('颜色近似法转换后的索引图像');

结果图片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/51844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Adapting Language Models to Compress Contexts

本文是LLM系列文章,针对《Adapting Language Models to Compress Contexts》的翻译。 使语言模型适应上下文压缩 摘要1 引言2 相关工作3 方法4 实验5 上下文学习6 压缩检索语料库实现高效推理7 结论不足 摘要 1 引言 2 相关工作 3 方法 4 实验 5 上下文学习 …

亚马逊云科技CEO谈及企业领导力原则的核心:坚持顾客至上

亚马逊云科技首席执行官Adam Selipsky几乎从一开始就在那里:他于2005年加入,在效力亚马逊11年后于2016年离开,转而经营Tableau,并于2021年成为亚马逊云科技首席执行官。当时亚马逊云科技前首席执行官安迪贾西(Andy Jassy)接替杰夫…

大数据(一)定义、特性

大数据(一)定义、特性 本文目录: 一、写在前面的话 二、大数据定义 三、大数据特性 3.1、大数据的大量 (Volume) 特性 3.2、大数据的高速(Velocity)特性 3.3、大数据的多样化 (Variety) 特性 3.4、大数据的价值 (value) 特性 3.5、大…

废品回收抢单派单小程序开源版开发

废品回收抢单派单小程序开源版开发 用户注册和登录:用户可以通过手机号码注册和登录小程序,以便使用废品回收抢单派单功能。废品回收订单发布:用户可以发布废品回收订单,包括废品种类、数量、回收地点等信息。废品回收抢单&#…

React通过docx-preview预览Word文档

前言 在基于React的Web应用中,我们经常遇到需要预览和展示Word文档的需求。而docx-preview是一个优秀的React组件库,可以帮助我们实现在Web页面上预览Word文档的功能。本文将介绍如何使用docx-preview组件来实现Word文档的预览,并提供一个案例…

编解码视频测试序列集

https://kodi.wiki/view/Samples https://ultravideo.fi/#testsequences 原文:http://forum.doom9.org/archive/index.php/t-135034.html his thread is meant to hold links and references to test video clip sequences intended to be used for various video…

Linux 网络文件共享介绍

Linux 网络文件共享介绍 一.常见的存储类型 目前常见的存储类型有 DAS,NAS,SAN 等,最主要的区别是硬盘存储媒介是如何 于处理器连接的,以及处理器使用何种方式来访问磁盘,以及访问磁盘使用 的协议(网络协议、I/O 协议)。 三种存储类型如下 直…

JavaScript箭头函数

Arrow Functions(箭头函数)是 ES6 中引入的一种新的函数表达式语法,它可以更简洁地定义函数,并且不需要像普通函数一样使用 function 关键字。 例如我们上节课的代码: const peopleAge function calcAge1(birthYear)…

vue3+ts+uniapp小程序端自定义日期选择器基于内置组件picker-view + 扩展组件 Popup 实现自定义日期选择及其他选择

vue3ts 基于内置组件picker-view 扩展组件 Popup 实现自定义日期选择及其他选择 vue3tsuniapp小程序端自定义日期选择器 1.先上效果图2.代码展示2.1 组件2.2 公共方法处理日期2.3 使用组件 3.注意事项3.1refSelectDialog3.1 backgroundColor"#fff" 自我记录 1.先上…

error: can‘t find Rust compiler

操作系统 win11 pip install -r requirements.txt 报错如下 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/56/fc/a3c13ded7b3057680c8ae95a9b6cc83e63657c38e0005c400a5d018a33a7/pyreadline3-3.4.1-py3-none-any.whl (95 kB) Building wheels for collected p…

哲讯科技携手无锡华启动SCM定制化项目,共谋数字化转型之路

无锡华光座椅弹簧有限公司启动SCM定制化项目 近日,无锡华光座椅弹簧有限公司顺利举行了SCM定制化项目的启动会。本次启动会作为该项目实施的重要里程碑,吸引了双方项目组核心成员的共同参与,并见证了项目的正式启动。 无锡华光座椅弹簧有限公…

Angular中如何获取URL参数?

Angular中的ActivatedRoute中保存着路由信息,可用来提取URL中的路由参数。 constructor(private route: ActivatedRoute){}ngOnInit(): void {this.getUser();}getUser(): void {const id this.route.snapshot.paramMap.get(id);} }route.snapshot是一个路由信息的…

计算机网络面试题

文章目录 描述HTTP和HTTPS的区别Cookie和Session有什么区别BIO、NIO、AIOTCP三次握手和四次挥手跨域请求是什么?有什么问题?怎么解决?网页输入url,到渲染整个界面的整个过程,以及中间件用了什么协议Rest、RestfulTCP的…

Java开发工作问题整理与记录

1、为什么Autowired不能注入static成员属性 扫描Class类需要注入的元数据的时候,直接选择忽略掉了static成员(包括属性和方法) Spring 依赖注入是依赖set方法, set方法是普通的对象方法,static变量是类的属性 AutowiredAnnotationBeanPostP…

嵌入式开发之堆栈调试打印

简介 打印堆栈的常用方法包括&#xff1a; glibc中的backtrace函数gcc内置函数__builtin_return_address第三方库libunwind 1 glibc中的backtrace 1. 1函数原型 #include <execinfo.h>/** 功能: 获取当前线程的调用堆栈并存放在buffer中(指向字符串数组的指针)* par…

【C语言】动态内存管理(malloc,free,calloc,realloc)-- 详解

一、动态内存分配 定义&#xff1a;动态内存分配 (Dynamic Memory Allocation) 就是指在程序执行的过程中&#xff0c;动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样&#xff0c;需要预先分配存储空间&#xff0c;而是由系统根据程…

kafka复习:(20):消费者拦截器的使用

一、定义消费者拦截器&#xff08;只消费含"sister"的消息&#xff09; package com.cisdi.dsp.modules.metaAnalysis.rest;import org.apache.kafka.clients.consumer.ConsumerInterceptor; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.…

0103水平分片-jdbc-shardingsphere-中间件

文章目录 1 准备服务器1.1 创建server-order0容器1.2 创建server-order1容器 2、基本水平分片2.1、基本配置2.2、数据源配置2.3、标椎分片表配置2.4、行表达式2.5、分片算法配置2.6、分布式序列算法 3、多表关联3.1、创建关联表3.2、创建实体类3.3、创建Mapper3.4、配置关联表3…

【C++设计模式】用动画片《少年骇客》(Ben10)来解释策略模式

2023年8月25日&#xff0c;周五上午 今天上午学习设计模式中的策略模式时&#xff0c;发现这个有点像很多卡通片里面的变身器... #include<iostream>//alien hero是外星英雄的意思 //在《少年骇客》中&#xff0c;主角可以通过变身器变成10种外星英雄 class AlienHero{ …

手机盖板IR油墨透光率检测仪T03

手机盖板作为手机最外层玻璃面板&#xff0c;其加工一般有落料、倒边、抛光、镀膜、丝印等多道加工工序组成&#xff0c;其中任何一个工序出现差错&#xff0c;都有可能导致手机盖板产生缺陷&#xff0c;例如漏油、透光、IR孔不良、视窗划伤、油墨区划伤、內污、边花等&#xf…