MATLAB图像uint8,uint16,double, rgb转灰度解释
1.uint8,uint16与double
为了节省存储空间,matlab为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称作8位图像。matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)运算。
概括:uint8,uint16--存储,显示
double---计算数据处理
2.转换
I = rgb2gray(imread(‘dog2.jpg')); %把图像变为灰度图像
f = im2double(I); % 灰度图转double类型--数据处理,保证精度
g = im2uint8(f); % 图像转 uint8 类型,一般不在计算中用,容易引入舍入误差
f = double(I); %double()将无符号整型转换为双精度浮点型double,数据大小没有变化,原本数据是0~255之间,转化后还是0~255。
g = im2uint8(f); % im2uint8()实现double转化为uint8,如果图像矩阵数据是double类型的0-255,直接im2uint8()转换的话,matlab会将大于1的数据都转换为255,0-1之间的数据才会映射到0~255之间整型的数据,所以图像会显示白色。
h = uint8(round(f)); %uint8()实现double转化为uint8
3.为什么要进行rgb转灰度?
- 自然界中,颜色本身非常容易受到光照的影响,rgb变化很大,反而梯度信息能提供更本质的信息
- 三通道转为一通道后,运算量大大减少
- opencv的很多函数只支持单通道
什么时候不需要转灰度?
基于颜色的算法,颜色本身由于样本环境的特殊原因很有价值,比如医疗图像中染色剂都是红色
MATLAB图像uint8,uint16,double, rgb转灰度解释的更多相关文章
- matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
转自:http://blog.csdn.net/fx677588/article/details/53301740 1. matlab图像保存说明 matlab中读取图片后保存的数据是uint8类型( ...
- matlab中图片数据类型转换uint8与double
matlab中处理图像像素点数据: img1=double(imread('lenna.bmp')); matlab中imshow图片,要先转换成uint8: subplot(1,2,1),imsho ...
- matlab图像基础知识
1.MATLAB支持的几种图像文件格式: ⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式. ⑵BMP(Windows Bitmap ...
- MATLAB 图像打开保存
一.图片读取保存 (1)读取 clear all [filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片'); if isequal ...
- 【CNN】--- 卷积过程中RGB与灰度的区别
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/hacker_Dem_br/article/ ...
- Matlab图像彩色转灰色
Matlab图像彩色转灰色 时间:2014年5月7日星期三 网上找的程序.实现图像彩色转灰色: I1=imread('C:\Users\Yano\Desktop\matlab\test1\4.jpg' ...
- matlab 图像和 opencv 图像的相互转换
matlab可以生成C++代码, 但是在涉及图像数据的时候,要注意数据格式的转换. 1. Matlab图像数据在内存中的存放顺序是R通道图,G通道图,B通道图.对于每个通道,数据存放是先列后行. 2. ...
- matlab图像灰度调整——imadjust函数的使用
在MATLAB中,通过函数imadjust()进行图像灰度的调整,该函数调用格式如下: J=imadjust( I ) 对图像I进行灰度调整 J=imadjust( I,[low_in;high_i ...
- uint8与double,二维矩阵显示灰度图
double型0~1对应uint8型0~255,转换用im2double和im2uint8 如果直接用uint8(double型),则为0~1的uint8型数据,图像全黑. 处理数据过程推荐用doub ...
随机推荐
- go 学习之字符串
字符串 字符串是不可变值类型,内部⽤用指针指向 UTF-8 字节数组.默认值是空字符串 "".用索引号访问某字节,如 s[i], i不能是负数.不能⽤用序号获取字节元素指针,&am ...
- hive数据库导入与导出
原文连接:https://www.cnblogs.com/654wangzai321/p/9970321.html 把Hive表数据导入到本地 table->local file insert ...
- Juqery插件编写 基础说明
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- python使用logging模块实现日志写入
python实现的logging写入日志的功能.logging模块还是挺好用的 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018 ...
- 最大流的SAP算法模板
明天补充~~~先上代码 #include<iostream> #include<string> #include<queue> #include<vector ...
- 0001.第一个多线程demo--分批处理数据
public class UserEntity { private String userId; private String userName; public String getUserId() ...
- 05.线程在睡眠时拥有的监视器资源不会被释放(这里使用重入锁ReentrantLock)
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public clas ...
- vue基础六
列表渲染 1.v-for 我们用 v-for 指令根据一组数组的选项列表进行渲染. v-for 指令需要以 item in items 形式的特殊语法(也可以用of代替in), items是源数据数组 ...
- delphi文件类型
1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:D ...
- 解析crontab php自动运行的方法
crontab是linux自带的一个命令 使php自动运行的方法php自动运行有很多方法,这里分以下DZ以及一些通过系统完成的方法和直接触发运行驻留系统的方法.Discuz后台有个计划任务,可以使ph ...