首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python,如何计算图像中具有指定尺寸的对象的面积。

使用python,如何计算图像中具有指定尺寸的对象的面积。
EN

Stack Overflow用户
提问于 2017-10-04 18:22:14
回答 1查看 1.2K关注 0票数 3

我正在研究从人类干细胞衍生出来的神经元中神经元突起变性的数据。输出的数据是一对图像,一张是健康的长轴突的图片,另一幅是破碎的、营养不良的神经突起的图片。我们有一个图像处理套件,可以标记这些神经突起,但该软件只能计算出总突起面积,这不能有效地区分前后的照片。

我试图在下面创建一个例子。左边是我们的“前”图片,有较少、更长、更厚的线条。左边是“后”照片,线条较少,线条较细。

目前,图片"A“和"B”的“区域”数据输出非常相似。我正在考虑是否有可能编写一个程序,其中只将连续的、长的对象计数为图片A中的对象。数据的最后输出只需为每张照片一个数字即可。即照片A可能只是输出"545",vs照片B可以输出"33“。

我可以想到对象识别的版本,它允许总计数,但无法想出一种方法来调整程序,使其只识别较长的连续行,而不是短点。

我们喜欢使用python的唯一原因是处理管道的早期阶段使用python脚本,如果可能的话,我们更愿意使用一种语言。(我们在python方面的经验也比matlab丰富得多)。

EN

回答 1

Stack Overflow用户

发布于 2017-10-04 19:00:31

一个简单的方法是用边缘检测滤波器对图像进行滤波.然后,您可以做一些非常基本的事情,比如输出和,这是图像中边缘数的粗略度量。给定两幅总面积相似的图像,一幅具有更多的“边缘度”(边缘滤波图像的范数)意味着你有更多、更小的部分。一个具有较小的过滤输出将需要更少,更大的部分。(同样,这假设的总面积与此相似。)

这种方法有利有弊。首先,它非常简单。但是你必须定义你所说的“相似区域”是什么意思,来证明比较两幅图像的过滤输出是正确的。

此外,边缘滤波方法可能大大低估了实际的碎片数量.在您在这里展示的图像中,右边图像中的附加边缘仅是两幅图像中边缘的一小部分,因为这些碎片是垂直于它们的长轴的“分裂”。另一方面,如果它们与长轴平行分裂,你会得到大约两倍的边缘。

无论如何,如果这个简单的方法不适用于您,那么在scikit-image中实现的算法就更复杂了,这些算法正是为此目的而设计的。例如,查看approximate_polygon()方法。skimage.measure模块有几种不同的方法来解决这个问题。

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

https://stackoverflow.com/questions/46571679

复制
相关文章

相似问题

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