MATLAB size/length/numel 图像的灰度化,显示与判断
来源:互联网 发布:mysql分32位和64位吗 编辑:程序博客网 时间:2024/05/29 14:32
size:获取数组的行数和列数
length:数组长度(即行数或列数中的较大值)
numel:元素总数。
s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。
[r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。
如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。 其中r=size(A,1)该语句返回的时数组A的行数, c=size(A,2) 该语句返回的时数组A的列数。
n=numel(A)该语句返回数组中元素的总数。
n=length(A):如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A));如果A为空数组,则返回0;如果A是一个向量则返回A的长度。
n=max(size(A)):若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数。
彩色图片为3维,灰度图片为2维。
zhu和44为彩色图片 12为灰度图像
pp=imread('D:\实验图片\12.jpg');
gg=imread('D:\实验图片\44.jpg');
[a, b, c]=size(vv);
h=length(size(pp));
k=length(size(gg));
tt=size(pp);
[l, m, n]=size(gg) ;
[ll, mm, nn]=size(pp)
numel(size(vv))
numel(size(pp))
numel(size(gg))
a =800
b = 600
c = 3
d = 3
h =2
k =3
tt = 1280 1024
l = 640
m = 670
n = 3
ll = 1280
mm =1024
nn = 1
ans = 3
ans = 2
ans = 3
通过imread(‘ ’)读取图片,读入的图像为unit8型,而MATLAB中矩阵运算中要求所有的运算变量为double型(双精度型)。通常使用im2double函数将图像数据转换成双精度型数据。
同时比较double、im2double、mat2gray区别
****************假设某图像数据A(uint8格式)**********************
A =
>>double(A)
ans =
>>im2double(A)
%返回矩阵类型:double;数值范围[0 1] ,0对应uint8中的0;1对应uint8中的255;
ans =
>>mat2gray(A)
ans =
****************假设矩阵A为一般二维数组,非图像数据(double格式)**********************
A =
>> double(A)
ans =
>> im2double(A)
ans =
>> mat2gray(A)
ans =
**********************小结***************************
im2double:如果输入类型是uint8、unit16 、logical,则按照0-->>0,255-->>1,将其值按比例处理成0~1之间的double数值;如果输入类型是double,输出没有处理;
double:返回数值与输入相同的double类型矩阵;
mat2gray:对输入进行归一化处理,最小值-->>0;最大值-->>1,输出类型为double。
注意:double( img)就是简单的数据类型转换,将无符号整型转换为双精度浮点型double,但是数据大小没有变化,原本数据是0~255之间,转化后还是0~255。例如原来是255,那么转换后为255.0,小数位0个数是由double数据长度决定,实际数据大小还是255,只不过这个255已经是double类型空间存储了,再增加不会发生溢出情况。而im2double(img)则不仅仅是将uint8转换到double类型,而且把数据大小从0~255映射到0~1区间。
img = imread('./1.jpg'); % 读入是unit8型(0~255)数据
I1 = im2double(img); % 把图像转换成double精度类型(0~1)
I2 = double(img)/255; %uint8转换成double,作用同im2double
各数据类型的转换参考: http://blog.csdn.net/fx677588/article/details/53301740 此篇中,还有图像显示imshow()的说明
判断图片是否为灰度图:
d = length(size(im));
if d==3
image=double(rgb2gray(im));
elseif d==2
image=double(im);
end
- MATLAB size/length/numel 图像的灰度化,显示与判断
- matlab中size/length/numel的用法 并利用判断是否为灰度图像
- matlab中size/length/numel的用法
- Matlab中size,length,numel的讨论
- matlab中size/length/numel的用法
- matlab中size/length/numel的用法
- matlab中size、length和numel函数的区别
- matlab size,length,numel函数的用…
- Matlab---size,length和numel函数
- Matlab---size,length和numel函数比较
- Matlab---size,length和numel函数
- Matlab---size,length和numel函数
- size, length, numel function in matlab
- matlab size、length和numel函数
- Matlab---size,length和numel函数
- matlab中size,length,numel函数
- Matlab中以三维的方式显示灰度图像
- matlab求灰度图像的灰度直方图
- SHA-1加密
- AnguelarJS学习笔记
- HDU 6138 Fleet of the Eternal Throne(2017 Multi-University Training Contest 8)
- day_08_HTTP客户端
- zoj 3600 Taxi Fare
- MATLAB size/length/numel 图像的灰度化,显示与判断
- git学习笔记整理-10-分支切换及历史查看
- 使用 vcgencmd 指令查看 Raspberry Pi 的 CPU 溫度、運行速度與電壓等資訊
- 集合切割提交
- maven tomcat启动一半
- git常用配置与使用
- 数据库设计原则
- iOS 字体竖着显示
- SDUT 2144-最小生成树