Matlab数据类型
2013-09-18 20:48
190 查看
今天写了一个读取多个图片(图片是个灰度图像)的程序,读取进来后对图片进行二值化,却发现输出的图片显示全黑。认真查看程序还是看不出问题,于是写了下面的程序能够显示黑白分明的图片。查看command windows变量区。发现cut(:,:,i)的数据类型是unit8,在看看help imshow的说明。由于已经二值化了,所以这个unit8只有0,1两个元素。256是白色。所以造成1的亮度太暗无法显示。
为什么cut(:,:,i)是unit8类型?
[FileName,PathName] =uigetfile('*.bmp','Select the bmp-file','MultiSelect',
'on');
len=length(FileName);
for i=1:len
cut(:,:,i)=imread(FileName{i});
cut(:,:,i)=~im2bw(cut(:,:,i),graythresh(cut(:,:,i)));
end
hu=cut(:,:,1)
imshow(cut(:,:,1))
clc;
clear all;
[FileName,PathName] =uigetfile('*.bmp','Select the bmp-file','MultiSelect',
'on');
len=length(FileName);
for i=1:len
cut(:,:,i)=~im2bw(imread(FileName{i}),graythresh(imread(FileName{i})));
end
imshow(cut(:,:,1));
由上两个程序,可以得出*.bmp文件是个存储unit8数据,于是把logical赋给unit8,结果是unit8。
temp=imread('001.bmp');
temp=~im2bw(temp,graythresh(temp));
imshow(temp);
最后总结下matlab的数据类型
数据类型。MATLAB的数据类型包括:
double 双精度浮点
uint8 无符号8位整数
uint16 无符号16位整数
uint32 无符号32位整数
int8 有符号8位整数
int16 有符号16位整数
int32 有符号32位整数
single 单精度
char 字符
logical 逻辑型(二值)
数据类型转换
B = data_class_name(A)
比如
>> C = [1.4 1.5]
>> D = uint8(C) D=1 2
图像类型分为:
Intensity image 灰度图
Binary image 二值图
Indexed image 索引图
RGB image 彩色图
在灰度图中每个像素可以是整型、浮点型或者逻辑型。图像类型的像素类型可以转换
function to from
im2uint8 uint8 logical,uint8,uint16,double
im2uint16 uint16 logical,uint8,uint16,double
mat2gray double double%把输入的数据转换成[0.0 1.0]范围内的double数据类型
im2double double logical,uint8,uint16,double
im2bw logical uint8,uint16,double
比如
g = mat2gray(A, [Amin, Amax]);%Amin对应0.0,Amax对应1.0
g = mat2gray(A);
g = im2double(h);
g = im2bw(f, T)
其中A是浮点型的图像,Amin和Amax是浮点数的范围,h和f是任意类型的图像,T是分割的阈值。
要注意在阈值分割里,im2bw(f,t)。中这个t是0-1范围内的。
总之matlab的数据类型还是比较容易掌握的,平
为什么cut(:,:,i)是unit8类型?
[FileName,PathName] =uigetfile('*.bmp','Select the bmp-file','MultiSelect',
'on');
len=length(FileName);
for i=1:len
cut(:,:,i)=imread(FileName{i});
cut(:,:,i)=~im2bw(cut(:,:,i),graythresh(cut(:,:,i)));
end
hu=cut(:,:,1)
imshow(cut(:,:,1))
clc;
clear all;
[FileName,PathName] =uigetfile('*.bmp','Select the bmp-file','MultiSelect',
'on');
len=length(FileName);
for i=1:len
cut(:,:,i)=~im2bw(imread(FileName{i}),graythresh(imread(FileName{i})));
end
imshow(cut(:,:,1));
由上两个程序,可以得出*.bmp文件是个存储unit8数据,于是把logical赋给unit8,结果是unit8。
temp=imread('001.bmp');
temp=~im2bw(temp,graythresh(temp));
imshow(temp);
最后总结下matlab的数据类型
数据类型。MATLAB的数据类型包括:
double 双精度浮点
uint8 无符号8位整数
uint16 无符号16位整数
uint32 无符号32位整数
int8 有符号8位整数
int16 有符号16位整数
int32 有符号32位整数
single 单精度
char 字符
logical 逻辑型(二值)
数据类型转换
B = data_class_name(A)
比如
>> C = [1.4 1.5]
>> D = uint8(C) D=1 2
图像类型分为:
Intensity image 灰度图
Binary image 二值图
Indexed image 索引图
RGB image 彩色图
在灰度图中每个像素可以是整型、浮点型或者逻辑型。图像类型的像素类型可以转换
function to from
im2uint8 uint8 logical,uint8,uint16,double
im2uint16 uint16 logical,uint8,uint16,double
mat2gray double double%把输入的数据转换成[0.0 1.0]范围内的double数据类型
im2double double logical,uint8,uint16,double
im2bw logical uint8,uint16,double
比如
g = mat2gray(A, [Amin, Amax]);%Amin对应0.0,Amax对应1.0
g = mat2gray(A);
g = im2double(h);
g = im2bw(f, T)
其中A是浮点型的图像,Amin和Amax是浮点数的范围,h和f是任意类型的图像,T是分割的阈值。
要注意在阈值分割里,im2bw(f,t)。中这个t是0-1范围内的。
总之matlab的数据类型还是比较容易掌握的,平
相关文章推荐
- 图像数据类型的转换 matlab opencv
- python利用h5py模块读取matlab中的mat文件并打印矩阵的数据类型,尺寸,数据
- matlab中用imshow()显示图像与图像矩阵的数据类型的关系
- matlab中的数据类型和显示精度
- matlab中数据类型及图像显示
- Matlab数据类型
- Matlab的数据类型
- Matlab 学习 入门篇 二 数据类型
- matlab图像中的数据类型
- matlab—load命令读的数据为struct类型的数据的处理方法
- matlab基本数据类型
- MATLAB和Opencv中数据类型转换
- MATLAB基本操作(三):数据类型
- Matlab基本数据类型
- MATLAB 数据类型
- MATLAB数据类型
- C# Matlab数据类型转化
- matlab中数据类型及图像显示
- matlab中数据类型及图像显示
- Matlab图像数据类型unit8,double关系