double转uint8
A是double型,先对A做一个截尾取整运算,然后再转换数据类型吧
A=fix(A); AA=uint8(A);这样可能会好一点吧
或者
im2double():将图像数组转换成double精度类型
im2uint8():将图像数组转换成unit8类型
im2uint16():将图像数组转换成unit16类型
cell转uint8
%EO(1,1);为 1*1 cell 数值类型
>> sss = EO(1,1);
>> mm = cell2mat(sss); %cell转double
>> mm = fix(mm);
>> mm= unit8(mm);
axis equal:纵、横坐标轴采用等长刻度
sskkm是M*N矩阵
sskkmmm = unique(sskkm);
sskkmmm是统计sskkm中的整数类别。
如果sskkm是0-1矩阵,sskkmmm值是0,1
1、p = nextpow2(A)
若A为标量,返回p,p为使2^p≥abs(A)成立的p的最小值;
若A为向量,返回p,p为使2^p≥length(A)成立的p的最小值。
如A = 512,p = 9(因为2^9 = 512);如A = 513,则p = 10(因为2^10 ≥513且10为可取最小值;如A = [1 2 3 4 5],则得到p = 3,因为2^3 ≥length(A) = 5,且3为可取最小值。
当A为向量时,有警告,需注意。
2、iptchecknargin(low,high,num_inputs,func_name) 检查参数数量是否在正常范围内;error
3、iptcheckinput(A, classes, attributes, func_name, var_name, arg_pos)
4、IMAGE =changeclass(class,varargin)
5、Matlab取整函数:fix(向0方向取整);floor(向负无穷方向取整);ceil(向正无穷方向取整);round(四舍五入)
6、k = imfinfo(filename) 获取图像信息;impixelinfo最近打开figure中显示像素信息指示工具,(旧版的pixelval)
7.iptchecknargin(low, high, num_inputs, func_name)该函数检查输入参数个数是否在 low 和 high 之间,假如不在, iptchecknargin 返回一个格式错误消息。
Low 应该是一个非负整数, high 应该是一个非负整数或者无穷大。
注明:该例子来自 Mathworks 公司英文帮助文件.
创建一个函数,用 iptchecknargin 检查函数参数是否在期望的范围内。
8.iptcheckinput(A, classes, attributes, func_name, var_name, arg_pos)
9.tf = islogical(A) 返回1(true)如果A中所有元素都是逻辑类型的, 返回0(false)如果1不是逻辑类型的.
matlab 顶帽变换
se=strel('disk',10);%产生结构元素;%圆盘型结构元素
f1=imtophat(s,se);%使用顶帽变换 %顶帽变换是指原始图像减去其开运算的图像
当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取。
顶帽变换的主要代码是:
if islogical(A)
B = A & ~imopen(A,SE);
else
B = imsubtract(A, imopen(A,SE));
end
imopen(A,SE)开运算属于形态学图像处理,是先腐蚀后膨胀。作用是,可以使边界平滑,消除细小的尖刺,断开窄小的连接。保持面积大小不变等。
imsubtract(A,B) A-B
find函数用于返回所需要元素的所在位置 (位置的判定:在矩阵中,第一列开始,自上而下,依次为1,2,3...,然后再从第二列,第三列依次往后数)
find(A)返回矩阵A中非零元素所在位置
>> A = [1 0 4 -3 0 0 0 8 6];
>> X = find(A)
X =
1 3 4 8 9
find(A>5)返回矩阵A中大于5的元素所在位置
>> find(A>5)
ans =
8 9
[i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,列j,和元素的值v(按所在位置先后顺序输出)
matlab k均值聚类
matlab 二值化