首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何加载作为tiff文件保存的二进制轮廓的XY坐标?

如何加载作为tiff文件保存的二进制轮廓的XY坐标?
EN

Stack Overflow用户
提问于 2017-10-10 22:43:41
回答 1查看 543关注 0票数 1

我使用R包Momocs来比较我在ImageJ中跟踪的形状的轮廓,并将其保存为二进制图像序列。例如:蜗牛齿的一个轮廓。Momocs需要一个X和Y坐标的矩阵,我很难从图像转换到坐标。

一方面: ImageJ可以选择将.XY坐标,但这只适用于选择。我可以使用魔杖工具来选择轮廓,但它包围了一个像素宽的轮廓,例如一条直线将有一个长方形的坐标,描述直线的两侧。这让我在双视(一颗牙齿近距离的图像例子)上看到了我的蜗牛牙,可能会对分析产生不利影响。

另一方面: Momocs有一个import_jpg1命令,但是当我将图像转换为jpegs (或者从头开始制作jpegs )时,它们最终会以浅色像素作为轮廓周围的噪声。我尝试了包tiffrtiff,但是它们的输出不是tiff黑色部分的XY坐标,而且我对输出还不太熟悉,无法理解如何将它们转换为XY坐标。

有人能帮我做一个(或多个!)其中:

  • Momocs可以读取的格式将tiff上传到R
  • 将通过tiffrtiff上传的tiff数据转换为Momocs可以读取的格式
  • 获取二进制图像tiff中所有黑色像素的XY坐标矩阵。
  • 将二进制图像tiff转换为二进制图像jpeg。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2017-10-12 20:35:14

通过指定which,您可以很容易地提取满足某些标准的像素的XY坐标矩阵,并使用R的函数arr.ind=TRUE。为了说明这种方法,我使用生物导体http://www.bioconductor.org/packages/EBImage直接从提供的URL加载示例PNG文件。readImage是R包( jpeg、png和tiff )中提供的函数的包装器,因此除了png之外,它还会打开JPEG和TIFF文件。

代码语言:javascript
运行
复制
### Install EBImage
# source("https://bioconductor.org/biocLite.R")
# biocLite("EBImage")

img <- EBImage::readImage("https://i.stack.imgur.com/ZFTxu.png")

mat <- which(img==0, arr.ind=TRUE, useNames=FALSE)
head(mat)

##      [,1] [,2]
## [1,]  121   53
## [2,]  120   54
## [3,]  118   55
## [4,]  119   55
## [5,]  117   56
## [6,]  116   57

EBImage提供了广泛的工具来处理R中的图像数据,这可能是您感兴趣的,例如操作、过滤和显示图像的功能。有关概述,请参见包格列奈特

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46677109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档