java图片转为rgb矩阵_[转载]图像类型转换--RGB图像、索引图像、灰度图像、二值图像和数据矩阵(1)...
要点:
RGB转换为灰度图像(包括将彩色映射表对应的索引图像的映射表转换成灰度映射表‘图像其实是彩色的’);
RGB转换为索引图像;
灰度图像转换成索引图像;
索引图像转换成灰度图像;
索引图像转换为RGB图像;
二值图像的转换
(1)、灰度图像转换成二值图像;
(2)、索引图像转换成二值图像;
(3)、RGB图像转换成二值图像;
数值矩阵转换成灰度图像。
RGB图像转换为索引图像
在MATLAB中直接调用rgb2ind()就可将RGB图像转换为索引图像,在函数rgb2ind()中还可以输入参数dither_option,其表示是否使用消抖。
[X,map]=rgb2ind(I,tol);该函数利用均分量化的方法将RGB图像转化为索引图像,。其中I是原RGB图像,tol的范围从0.0-1.0,[X,map]为生成的索引图像,map为索引图像的颜色表,其中包含至少((1/tol)+1)^3个颜色。
[X,map]=rgb2ind(I,N);该函数利用最小方差量化的方法,mao中至少包含N个颜色。
X=rgb2ind(I,map);该函数是通过与RGB中最相近的颜色进行匹配生成颜色映射表map,[X,mao]对应于新的索引图像,。
[...]=rgb2ind(...,dither_option);该函数是通过dither_option来设置图像转换是否进行颜色消抖,dither_option取值为dither则表示消抖,dither_option取值为nodither则不消抖。格式中“...”表示根据情况可以选择上述3中不同的模式。
程序举例
close
all;clear all;clc;
RGB=imread('yaoming.jpg');
[X1,map1]=rgb2ind(RGB,32);
[X2,map2]=rgb2ind(RGB,0.7);
map3=colorcube(64);%创建一个指定颜色数目的RGB
颜色映射表,只是确定数目
map33=colorcube(64);
map333=colorcube(64); X3=rgb2ind(RGB,map3);
[X11,map11]=rgb2ind(RGB,64,'dither');
[X22,map22]=rgb2ind(RGB,0.7,'dither');
X33=rgb2ind(RGB,map33,'dither');
[X111,map111]=rgb2ind(RGB,64,'nodither');
[X222,map222]=rgb2ind(RGB,0.7,'nodither');
X333=rgb2ind(RGB,map333,'nodither');
figure(1);
subplot(131),imshow(X1,map1);title('最小方差量化原图');
subplot(132),imshow(X11,map11);title('消抖');
subplot(133),imshow(X111,map111);title('未消抖');
figure(2);
subplot(131),imshow(X2,map2);title('均匀量化原图');
subplot(132),imshow(X22,map22);title('消抖');
subplot(133),imshow(X222,map222);title('未消抖');
figure(3);
subplot(131),imshow(X3,map3);title('匹配颜色映射表原图');
subplot(132),imshow(X33,map33);title('消抖');
subplot(133),imshow(X333,map333);title('未消抖');
在结果图片中可以看出,采用均匀量化的方法转化图像同等条件下显得没有最小方差量化的方法保真,而用均匀量化来显示图像的抖动与否更加明显,但衍射映射表的方法介于两者之间。
RGB图像转换成灰度图像
调用rgb2gray()函数可以完成图像的转换,
彩色图像中还有彩色索引图像,彩色索引图像可利用如下方法:
newmap=rgb2gray(map);将彩色索引图像的颜色映射表转换为彩色映射表,
但是这种方法显示的时候不能用subplot(121)这样的方式显示,这样显示的都是灰度图像,暂时不知道为什么。
close
all;clear all;clc;
%将真彩图像转化为灰度图像
I=imread('yaoming.jpg');
X=rgb2gray(I);
figure,
subplot(121),imshow(I);title('彩色图像');
subplot(122),imshow(X);title('灰度图像');
%将真彩索引图提取灰度映射表
[Y,map]=imread('trees.tif');
newmap=rgb2gray(map);
figure(2),imshow(Y,map);
title('原图灰度的颜色映射表');
figure(3),imshow(Y,newmap);
title('转换后灰度颜色映射表');
索引图像转换成RGB图像
调用ind2rgb()函数可以完成图像的转换,
RGB=ind2rgb(X,map);转换过程中,形成一个三维数组,然后将索引图像的颜色映射表赋值给这个三维数组,输入图像的数据类型可以是double,uint8和uint16,输出为double.
%将真彩图转化为索引图再进行颜色表提取
[Z,map1]=rgb2ind(I,128);
RGB1=ind2rgb(Z,map1);
figure,imshow(Z,map1);title('原图的真彩颜色映射表');
figure,imshow(RGB1);title('彩色映射表对应的RGB图像');
%将真彩图转化为索引图再进行颜色表提取
[Z,map1]=rgb2ind(I,128);
newmap1=rgb2gray(map1);
figure,imshow(Z,map1);title('原图的真彩颜色映射表');
figure,imshow(Z,newmap1);title('转换后灰度颜色映射表');
RGB1=ind2rgb(Z,map1);
RGB2=ind2rgb(Z,newmap1);
figure,imshow(Z,map1);title('原图的真彩颜色映射表');
figure,imshow(Z,newmap1);title('转换后灰度颜色映射表');
figure,imshow(RGB1);title('彩色映射表对应的RGB图像');
figure,imshow(RGB2);title('转换后灰度颜色映射表对应的图');
图像图形后缀名----------------百度文库
java图片转为rgb矩阵_[转载]图像类型转换--RGB图像、索引图像、灰度图像、二值图像和数据矩阵(1)...相关推荐
- matlab将二值图像与原图重叠_[转载]图像处理matlab及图像融合图像镶嵌图像拼接...
在实际的对图像处理过程中,由于我们读出的图像是unit8型,而在MATLAB的矩阵运算中要求所有的运算变量为double型(双精度型).因此读出的图像数据不能直接进行相加求平均,因此必须使用一个函数将 ...
- 前端js获取图片大小 扩展名_前端 JS 获取 Image 图像 宽高 尺寸
前端 JS 获取 Image 图像 宽高 尺寸 简介 项目中用到获取图片的原始尺寸,然后适配宽高:网上的大部分前端解决方案,都是new Image()后,在onload事件中获取image的尺寸. 在 ...
- java图片处理开源项目_如何处理离开开源项目
java图片处理开源项目 2015年初,我决定离开我的工作,这是我刚刚工作两年多的时候. 我的家人和朋友中没有一个人对我担任其他职位感到惊讶. 采取这一举措是一件很平常的事情,特别是在我们倾向于频繁更 ...
- 二进制空间权重矩阵_白话空间统计之二十五:空间权重矩阵(三)解构空间权重矩阵...
原标题:白话空间统计之二十五:空间权重矩阵(三)解构空间权重矩阵 中国古代就有"天圆地方"一说,所谓的"方"就是所谓的矩阵-- 在军事上面,最为讲究就是团体的力 ...
- python获取图片像素矩阵_用python处理图片实现图像中的像素访问
这篇文章主要介绍了关于用python处理图片实现图像中的像素访问,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前面的一些例子中,我们都是利用Image.open()来打开一幅图像,然 ...
- Java图片gh颜色渐变_强大的Java图像滤镜特效类库Java Image Filters
Java Image Filters是一款基于Java的图像处理类库,特别是在图像滤镜特效方面,Java Image Filters简直就是强大到天衣无缝.它几乎提供了PS上大部分的图像特效.比如反色 ...
- java图片切割类任务书_基于Java的截图工具(可储存编辑)的设计与实现毕业论文+任务书+翻译及原文+答辩PPT+源码+辅导视频...
基于Java的截图工具(可储存编辑)的设计与实现 摘要 当今时代是飞速发展的信息时代,人们在对信息的处理中对图像的处理量与日俱增,这一点在文档人员上显得非常突出. 本软件采用Java语言进行模拟qq截 ...
- java 图片 word文档_【Java】用Freemarker完美导出word文档(带图片)
Java 用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...
- java图片异步加载_使用java concurrent处理异步加载图片功能
转载:http://marshal.easymorse.com/archives/3081 java5开始,增加了concurrent api,用于并发处理.比如起多个线程并发从网络上下载图片,然后在 ...
最新文章
- 深入浅出Pytorch:01 课程大纲与PyTorch简介
- hi3559 目标检测
- [cpyhon源代码]dict对象原理学习
- 离线登陆_iphone手机,苹果手机如何登陆网易163邮箱
- 切割日志 python版
- linux命令-tar命令
- 关于T4,正在发生的...
- Lua学习笔记3. 函数可变参数和运算符、转义字符串、数组
- 我的Mac中毒了,病毒居然叫做MacPerformance
- Puppet 实验十三 Foreman 基础使用
- ASP.NET中使用System.Net.Mail发邮件
- 北上广,是程序员最好的归宿?
- ASO优化:ios关键词覆盖和增量技巧
- vue项目目录详细解读
- stm32下OLED屏的应用
- 关于吴恩达深度学习总结
- N-Tiers使用ObjectDataSouce如何自己处理中间层传回的错误讯息
- java成员变量默认是_在Java语言中,String类型的成员变量的默认初始值是( )
- 快手财报,广告、直播、电商齐头并进
- rjs 合并压缩完 js 后 js 不压缩的问题
热门文章
- python创意小作品-Python竟能画这么漂亮的花,帅呆了(代码分享)
- vc++ 取消ipch文件夹和sdf文件
- java计算机毕业设计家政服务管理系统源码+mysql数据库+系统+lw文档+部署
- PotPlayer 播放时出现如下问题怎么解决?
- 2021兴宁高考成绩查询,兴宁2021中考录取分数线查询
- html5杂音,简单5个方法解决!AirPods Pro出现“滋滋声”杂音问题!
- 我的创作纪念日-哈市雪花
- Ubuntu16安装FreePBX
- 深搜算法实例:老鼠走迷宫(一)
- OJ每日一练——数组倒序输出新数组