(MATLAB 新手)我想学习如何使用 MATLAB 测量图像特征之间的距离。我应该从哪里开始?

(New to MATLAB) I want to learn how to use MATLAB to measure distances between features of an image. Where should I start?

我是一名攻读生物医学博士学位的研究生,没有编码经验。我的大学有 MATLAB 的校园许可证,所以我想我会尝试学习如何使用它来对我的一些图像进行更量化的处理。也就是说,我有一系列非常相似的细胞 (10-15 cells/image) 从组织中迁移出来的图像。我希望能够使用 MATLAB 来测量每个细胞和组织之间的距离(如果可能的话,标准化为组织的大小)。我一直在阅读 Computer Vision System Toolbox 中可用的工具,例如杂乱场景中的对象检测,但我不确定它们是否相关。我也不知道如何将我的图像导入 MATLAB。我不是在找人为我做所有这些事情;相反,如果有人能给我指出正确的方向(我应该查看的工具、对初学者有帮助的阅读等),我将非常感激。

这里是生物医学博士:)

计算机视觉工具箱并不是您真正需要的,基本图像处理任务需要的是图像处理工具箱。 转到 matlab 文档(您可以在控制台中使用 doc 命令调出该文档),如果您安装了图像处理工具箱,文档 [=38] 中的文档应该有一个 link =].

或者,要获取图像处理工具箱中可用命令的(大)列表,请在控制台中键入 help images。如果要查找特定关键字,可以使用 lookfor,例如如果您键入 lookfor distance,您将看到一个计算距离变换的 bwdist 命令的结果。

读取和显示图像的基本命令是imreadimagesc

这是一个小示例,说明您可以如何使用它来查找像元距离。 (运行 这些命令一行一行地查看结果)。

Img = imread('rice.png') % Read rice.png image into array I

(注意:'rice.png' 是一个在 matlab 中准备好的图像,并且在 matlab 'path' 中,即无论您目前所在的目录如何,您都可以访问它. 你可以通过键入 which rice.png 查看它在你计算机上的确切位置。此外,如果你不想要它,你可以在每个命令后抑制所有输出,方法是在你的命令结束时使用 '; ' )

Img 现在是一个矩阵,包含从 0 到 256 的整数值(即 'unsigned integer' 类型)。我们经常使用 [0,1] 范围内的 'grayscale' 图像(即 'double' 类型)。

Img = mat2gray(Img) % convert to grayscale image.
imagesc(Img) % visualise image
colormap gray % convert to grayscale colours
BinaryImg = (Img > 0.5) % retain only pixels with intensity above 0.5;
imagesc(BinaryImg) % visualise binary version
BinaryImg = bwareaopen(BinaryImg,10) % clean up image by removing objects less than 10 pixels big. type 'help bwareaopen' in the console for details
imagesc(BinaryImg) % see how the image has now cleaned up a bit
DistanceTransform = bwdist(BinaryImg)
imagesc(DistanceTransform) % each pixel value represents distance to nearest object (i.e. nearest 'true' pixel in binary image)
colorbar % helps you see what those distances are
colormap jet % this is a nicer map for distance images :)

希望这对您有所帮助。祝你旅途愉快:)

请参考Computer Vision Toolbox,尤其是matlab文档中的matchFeatures函数。

link: http://in.mathworks.com/help/vision/ref/matchfeatures.html