Image processing 计算位图面积的开源程序

Image processing 计算位图面积的开源程序,image-processing,open-source,measurement,Image Processing,Open Source,Measurement,我刚为显微镜买了一台徕卡数码相机。它附带了一个软件,用于拍照和校准图片(每毫米像素),它可以测量长度并在文件中打印1毫米的标尺,但我也想测量面积。 测量多边形面积的插件大约需要1000欧元 因此我正在寻找一个开源程序,它可以测量jpg(tif,png)文件中多边形的面积。 例如,显微镜图片显示了一只苍蝇的翅膀,我想用鼠标点击翅膀周围的多边形,得到“4.32毫米^2” 如果没有,我将不得不自己开始,但我确信这是一个常见问题,我在搜索引擎中使用了错误的关键字。您可以使用(ImageJ发行版)拍照并执

我刚为显微镜买了一台徕卡数码相机。它附带了一个软件,用于拍照和校准图片(每毫米像素),它可以测量长度并在文件中打印1毫米的标尺,但我也想测量面积。 测量多边形面积的插件大约需要1000欧元

因此我正在寻找一个开源程序,它可以测量
jpg
tif
png
)文件中多边形的面积。

例如,显微镜图片显示了一只苍蝇的翅膀,我想用鼠标点击翅膀周围的多边形,得到“4.32毫米^2”


如果没有,我将不得不自己开始,但我确信这是一个常见问题,我在搜索引擎中使用了错误的关键字。

您可以使用(ImageJ发行版)拍照并执行图像分析。其他图像分析工具Cellprofiler可以计算对象的特征


带有Baumer光电适配器的Micromanager项目也可以用您的相机处理。还可以看看这个。

我倾向于使用开源矢量绘图应用程序“inkscape”来完成这类工作

  • 导入图像(文件->导入)
  • 绘制需要测量的多边形(Shift+F6)
  • 从菜单扩展->可视化路径->测量路径中选择
  • 将比例因子设置为通过校准知道的比例因子
  • 将长度单位设置为mm
  • 按“应用”。这将向图形中添加一个区域指示作为文本字段

Engauge数字化仪支持在位图中测量

如何定义该区域?如果你知道每个像素有多大,有多少像素处于“开启”状态,你基本上就完成了。你在寻找一些基本的数学(矩形的面积)?一个像素没有任何固有的物理大小。也许您可以从校准工具输出的校准数据中得出像素的物理大小?@JanDvorak图片已校准。我知道像素/毫米的值。多边形是如何定义的?通过它所有顶点的像素坐标-然后它就很容易解决了?我喜欢这种方法,但我发现我不能在windows中使用它,因为缺少python库。我无法让它工作。这是我的首选答案!事实上,inkex.py需要libxml2的奇妙lxml包装,因此需要此扩展。请从下载并安装最新版本http://cheeseshop.python.org/pypi/lxml/,或者通过包管理器通过如下命令安装它:sudo apt get install python lxml,我看到了一堆
.whl
文件,我不知道如何处理它们才能让Inkscape访问它们。事实上,我认为inkscape可能会与一些python捆绑在一起,因为我在系统中没有将python作为独立的inkscape外部安装。我导入了一个带有建筑蓝图的
.jpg
。我放了一条线,我知道它的长度(米)。菜单
分析|设置比例
。我输入了已知的实际长度(像素距离已预先填充)。然后我只画了我感兴趣的多边形,在菜单
Analyze | Measure
中我得到了以平方米为单位的面积。在440平方米的面积上,我得到的误差约为+/-0.5%(从438到443)。考虑到这是一份40年前手工制作的平面图的复印件的扫描,我发现0.5%是可以接受的。此外,我知道原始蓝图的比例是1:100,扫描速度是150 dpi。这使我能够计算出我在斐济引入的刻度:我只使用了这些换算系数:
100mr=1mp
(现实中mr=m,原始刻度给出的平面图中mp=m),
1in=2.54cm
(按定义),
100cm=1m
(按定义),
1in=150px
(扫描分辨率),然后:
1 mr*(1 mp/100 mr)*(100 cm/1 m)*(1 in/2.54 cm)*(150 px/1 in)=59.0551
。我刚刚在斐济设置了这个,得到了预期的440平方米,完全没有错误。