Matlab从图像转换为双精度
Posted
技术标签:
【中文标题】Matlab从图像转换为双精度【英文标题】:Matlab Convert to Double Precision from Image 【发布时间】:2018-01-08 09:48:39 【问题描述】:我正在自学/探索 Matlab。 我正在做一些基本的图像处理和分析。
我正在学习的教程将 RGB 图像转换为 LaB 颜色空间。
RGB = imread('Images/cow.jpg');
cform = makecform('srgb2lab');
lab_he = applycform(RGB,cform);
imshow(lab_he);
到目前为止一切正常。下一步是使用 k-means 聚类对 a b 颜色空间中的颜色进行分类。这是 sn-p 提供的代码。=:
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nColors = 3;
有人可以向我解释一下传递给 double() 函数的内容吗? lab_he(:,:,2:3) 参数/函数在做什么?我意识到它正在将某些东西转换为双精度值。我只是不知道正在转换什么。
这是我正在关注的教程:https://www.mathworks.com/help/images/examples/color-based-segmentation-using-k-means-clustering.html
【问题讨论】:
如果不将其转换为双精度会发生什么,即ab = lab_he(:,:,2:3);
?
查看colon
的文档
哇,可能应该先看看那里。谢谢!
【参考方案1】:
根据教程,lab_he 变量是使用 applycform 函数创建的。根据documentation,此函数最多传递三个值。因此,double 函数接收 he 和 cform 参数以及某个向量的第二到第三个空格以用于类支持。祝你的项目好运!
已编辑以修复超链接。
【讨论】:
以上是关于Matlab从图像转换为双精度的主要内容,如果未能解决你的问题,请参考以下文章