%小白从零开始学习图像处理,自己看的不知道理解的是不是正确,在慢慢进步
1.将RGB图像转换为灰度图像
close all
clear all
clc
RGB=imread(‘haixiquan.jpg’); %读取RGB图像
gray=rgb2gray(RGB); %将RGB图像转换为灰度图像
figure;
set(0,‘defaultFigurePosition’,[100,100,1000,500]);%设置显示图像的窗口大小
set(0,‘defaultFigureColor’,[1 0 0]);%设置显示的背景颜色
subplot(121),imshow(RGB),title(‘RGB图像’);
%subplot是图像分割函数,imshow是显示图像函数,title是在图像上面加标题
subplot(122),imshow(gray),title(‘灰度图’);

首先对各个函数理解一下
1.imread() 就是调入图像
2.rgb2gray() 就是RGB转换为灰度的函数
3.set(0,‘defaultFigurePosition’,[100,100,1000,500]); 设置显示图像的窗口位置大小,100,100 是图形显示在窗口的位置坐标,换一下大小就可以看出来,1000,500是显示figure的大小
4.title 就是图片上标题
5.set(0,‘defaultFigureColor’,[1 0 0]); 设置显示的背景颜色,[0 0 0]显示黑色背景,[1 0 0]显示背景是红色

2.彩色索引表换位灰色索引表
close all
clear all
clc
RGB=imread(‘haixiquan.jpg’); %提取RGB图像
[X,map]=rgb2ind(RGB,0.2); %将RGB图像转变为索引图像,获得map表
newmap=rgb2gray(map); %将彩色的索引表换为灰色索引表
figure;
set(0,‘defaultFigureColor’,[0 0 0]);
subplot(131),imshow(X,map);
subplot(132),imshow(X,newmap);
subplot(133),imshow(RGB);

所用一些函数的解释
这里解释一下 [X,map]=rgb2ind(RGB,0.2) %RGB转换为索引图像时有常用三种不同的转换方法,最小方差转换、均匀量化转换和颜色近似法转换。

3.RGB图像转换为索引图像
close all
clear all
clc
RGB=imread(‘haixiquan.jpg’);
[X1,map1]=rgb2ind(RGB,64);
[X2,map2]=rgb2ind(RGB,0.2);
map3=colorcube(128);
X3=rgb2ind(RGB,map3);
figure;
set(0,‘defaultFigurePosition’,[100,100,500,500]);
set(0,‘defaultFigurecolor’,[0 0 0]);
subplot(221),imshow(X1,map1),title(‘最小方差’);
subplot(222),imshow(X2,map2),title(‘均匀方差量化’);
subplot(223),imshow(X3,map3),title(‘颜色近似法转换’);
subplot(224),imshow(RGB),title(‘原图’);

解释一下这个图像转换中遇到的问题
[X1,map1]=rgb2ind(RGB,64) %就是使用最小方差量化将RGB图像转换为索引图像X. MAP最多包含N种颜色。 N必须<= 65536。

[X2,map2] = rgb2ind(RGB,TOL) %使用均匀量化将RGB图像转换为索引图像X. map最多包含(FLOOR(1 / TOL)+1)^ 3种颜色。 TOL必须介于0.0和1.0之间。这里FLOOR=1,当TOL等于0.2时,则表示216种颜色。

map3 = colorcube(128);
X3 = rgb2ind(RGB,map3);
%上面的两行代码则是创建一个指定颜色数目的所以表,然后用这个索引表进行近似显示RGB图。colorcube增强的彩色立方体颜色。colorcube(M)返回一个包含彩色立方体的M-by-3矩阵。 colorcube本身的长度与当前的色彩映射相同。 彩色立方体在RGB色彩空间中包含尽可能多的定期间隔的颜色,同时尝试提供更多的灰色,纯红,纯绿和纯蓝色的步骤。 该多维数据集的算法灵感来自默认的Macintosh系统colortable,对于M = 256,colorcube返回完全相同的颜色。 对于M <8,返回长度为M的灰色斜坡。
%这段全是抄的,我是TM的没看懂,还有那个抖动的原理,算了算了等再学一算时间看看能不能有所理解。
4.灰度图像转换为索引图像
close all
clear all
clc
RGB=imread(‘haixiquan.jpg’);
gray=rgb2gray(RGB);
[X,map]=gray2ind(gray,16); %转换为16中颜色的索引表
figure;
set(0,‘defaultFigureposition’,[200 200 500 500]);
set(0,‘defaultFigurecolor’,[1 0 0]);
subplot(131),imshow(RGB),title(‘RGB图像’);
subplot(132),imshow(gray),title(‘灰度图像’);
subplot(133),imshow(X,map),title(‘索引图像’);


5.灰度图像转换为二值图像
close all
clear all
clc
RGB=imread(‘haixiquan.jpg’);
gray=rgb2gray(RGB);
BW1=im2bw(gray,0.4);
BW2=im2bw(gray,0.7);
figure;
set(0,‘defaultFigureposition’,[150 150 500 500]);
set(0,‘defaultFigurecolor’,[1 1 0]);
subplot(221),imshow(RGB),title(‘RGB图像’);
subplot(222),imshow(gray),title(‘灰度图像’);
subplot(223),imshow(BW1),title(‘阈值0.4二值图像’);
subplot(224),imshow(BW2),title(‘阈值0.7二值图像’);



%自己理解的解释
阈值就是灰度图像转换后矩阵里的数例如255转换为double浮点类型1.000
其他的数也发生变化但是再0-1之间,这样和阈值对比,大于阈值为1(白),小于阈值为0(黑)。

6.RGB图像直接转变为二值图像

close all
clear all
clc
RGB=imread(‘haixiquan.jpg’);
BW1=im2bw(RGB,0.3);
BW2=im2bw(RGB,0.7);
figure;
set(0,‘defaultFigureposition’,[150 150 500 500]);
set(0,‘defaultFigurecolor’,[1 1 0]);
subplot(131),imshow(RGB),title(‘RGB图像’);
subplot(132),imshow(BW1),title(‘阈值0.3二值图像’);
subplot(133),imshow(BW2),title(‘阈值0.7二值图像’)

%总结一下遇到的问题
1.在调用set函数时有关背景颜色显示时候的矩阵是不是[0 0 0]这个是不是就是RGB三原色的那个三位矩阵的意思,感觉是这个意思。
2.有关索引图像那三种转换算法不理解
3.先将RGB图像转换为灰度图像然后再转换为二值图像与RGB直接转换为二值图像有什么区别,有关uint8,double,logical图像转换还是不清楚,慢慢来喽
%后天要考6级了,裸考听力,加油 冲冲冲

RGB图像,索引图像,灰度图像,二值图像相互转换相关推荐

  1. 彩色RGB图像转为灰度图像

    将彩色RGB图像转为灰度图像,其中像素值的转换为 灰度值=0.2989 * R + 0.5870 * G + 0.1140 * B 原彩色RGB图像是三通道的,转换成单通道的灰度图像 自己写了一个Py ...

  2. ITK:将RGB图像转换为灰度图像

    ITK:将RGB图像转换为灰度图像 内容提要 输出结果 C++实现代码 内容提要 将RGB图像转换为其亮度图像(灰度级一). 输出结果 C++实现代码 #include "itkImage. ...

  3. RGB图像转灰度图像的原理

    简介 将彩色图像转化成为灰度图像的过程成为图像的灰度化处理.彩色图像中的每个像素的颜色有R.G.B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的 ...

  4. 基于python的图像格式转换(将RGB图像转换为灰度图像)

    1.将RGB图像转换为灰度图像: from PIL import Image I = Image.open('F:\\pycharm\\picture_format\\data\\lena.jpg') ...

  5. opencv学习5:cvtColor RGB图像转灰度图像原理

    简介 将彩色图像转化成为灰度图像的过程成为图像的灰度化处理.彩色图像中的每个像素的颜色有R.G.B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的 ...

  6. 【图像笔记】RGB图像转灰度图像

    RGB图像转灰度图像转灰度图像有三种方法: 最大值法 将彩色图像中的三分类亮度的最大值作为灰度图的灰度值 (35,40,55) (0,15,8) ---> 55 15 (20,15,8) (25 ...

  7. 索引图像,RGB图像,灰度图像,.二值图像

    索引图像 索引图像包括一个数据矩阵X和一个颜色映射(调色板)矩阵map. 数据矩阵X可以有uint8,uint16或double类型的.颜色映射矩阵map是一个N*3的数据阵列,其中每个元素都是位于[ ...

  8. 索引图像,RGB图像,灰度图像,二值图像

    1. 索引图像 索引图像包括一个数据矩阵X和一个颜色映射(调色板)矩阵map. 数据矩阵X可以有uint8,uint16或double类型的.颜色映射矩阵map是一个N*3的数据阵列,其中每个元素都是 ...

  9. RGB图像转换为灰度图像的原理

    RGB彩色图像中,一种彩色由R(红色),G(绿色),B(蓝色)三原色按比例混合而成. 图像的基本单元是一个像素,一个像素需要3块表示,分别代表R,G,B,如果8为表示一个颜色,就由0-255区分不同亮 ...

  10. python将图像转化为灰度图像_在Python中,如何将RGB图像转换为灰度图像?

    我正在尝试使用matplotlib读取RGB图像并将其转换为灰度图像. 在matlab中,我使用这个: img = rgb2gray(imread('image.png')); 在matplotlib ...

最新文章

  1. 小白也能看懂的教程:微信小程序在线支付功能开通详细流程(图文介绍)
  2. Tushare数据的绘图操作
  3. 重启报错_Win10蓝屏,提示收集错误信息,反复重启报错
  4. 三菱socket通信实例_三菱QUnCPU内置以太网Socket通信(TCP篇)
  5. If-Modified-Since If-None-Match
  6. linux系统交换空间,Linux中如何使用和管理交换空间
  7. 交换机 VLAN配置基础及实例
  8. linux rpm安装简要说明
  9. matlab 读取npy,在将mat中的mat数据转换为Python中使用的NPY数据时遇到的Pit问题,Matlab,转成,python,npy,坑...
  10. ros打开笔记本电脑的摄像头
  11. make~warning: Clock skew detected. Your build may be incomplete.
  12. [JS] 聊一聊File对象
  13. copypng emitted errors
  14. Efficientnet-b5网络结构
  15. VINS fusion软件架构分析(4)---后端处理processMeasurements()功能函数概览
  16. 用python输出沙漏_sandglass(沙漏)——一个让人解脱的python时间处理库
  17. Kony集成百度推送-IOS
  18. java之一篇:java的执行顺序表象
  19. 语言模型评价指标 bpc(bits-per-character)和困惑度ppl(perplexity)
  20. 淘宝/京东/京粉 QQ 消息 转链 软件

热门文章

  1. 软件产品设计使用说明
  2. PT8M2101A(触控型 8Bit MTP MCU)
  3. LockHunter 解锁猎人 v3.4.3.146 文件占用解除工具中文便携版
  4. 如何修炼成一位售前咨询顾问?
  5. rk3568 Linux 网络唤醒
  6. python构建知识库_快速入门:创建知识库 - REST、Python - QnA Maker - Azure Cognitive Services | Microsoft Docs...
  7. HNOI 2002 营业额统计(Splay树)
  8. MFC框架下自绘CEdit控件
  9. 从熵到相位传递熵,附matlba和python代码
  10. H265码流RTP封装方式详解