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从图像转换为双精度的主要内容,如果未能解决你的问题,请参考以下文章

matlab图像处理

在java中将十六进制数字字符串转换为双精度数字

将字符串从组合框转换为双精度

matlab图像处理为啥要double和uint8转换

将列的数据类型从字符串转换为双精度

将字符串从.csv文件转换为双精度数