过去两天我一直在浏览帖子和例子,我尝试过并经过广泛测试的所有片段都证明是无用的,至少对我来说是这样.
我想要做的是比较从墙上或纸上拍摄的黑色矢量符号(质量类似于人们可能会说的严重扫描图像),并将其与相同或类似符号的电子版本进行比较(将存储在本地和与照片相比).请看一下两个附加的图像,第一个干净的图像(参考图像)是符号的数据库版本,第二个是我在一张纸上制作的蹩脚图画,然后我用我的iPad拍摄.


我希望程序如下:
现在进行比较,我尝试了大量不同的建议方法,但到目前为止,结果非常糟糕.实际上,我可以通过随机图像获得比测试结果更好的比较结果.我已经尝试了基于实际图像的RMS差异比较,它们的边缘(使用ImageFilter.CONTOUR或ImageFilter.FIND_EDGES的'过滤器'功能创建),基于像素的比较,但到目前为止我没有在网上找到任何东西(尽管我不间断的谷歌搜索)或者在StackOverflow这里给了我不错的结果.
我相信问题在于测试图像的嘈杂背景,但我还没有能够证明这一点.有没有人知道是否有办法从这些图像的边缘中获取矢量轮廓,并将它们不仅仅作为图像而是作为图像矢量进行比较?尽管我绘图很糟糕,但我发现这两个图像非常相似,应该可以很好地比较它.
python image image-processing computer-vision python-imaging-library
对于那些想要将简单的3D numpy数组(以及轴)导出到.vtk(或.vtr)文件以进行后期处理并在Paraview或Mayavi中显示的人,有一个名为PyEVTK的小模块就是这样做的.该模块支持结构化和非结构化数据等.不幸的是,即使代码在基于unix的系统中工作正常,我也无法在任何简单地使事情变得复杂的Windows安装上工作(不断崩溃).我联系了开发人员,但他的建议没有用
因此我的问题是:如何使用该from vtk.util import numpy_support函数将3D数组(函数本身不支持3D数组)导出到.vtk文件?有没有一种简单的方法可以在不创建vtkDatasets等的情况下完成它?
非常感谢!
可以说我有两个概念上不同的REST API,它们是通过Flask或Falcon之类的框架在Python中开发的,我需要通过Gunicorn在具有4GB RAM和2个vCPU的服务器上进行部署。
对该API的请求几乎不涉及任何IO,而是受CPU限制。但是,这些运算非常快并且需要很少的存储空间,例如简单的数学运算。
对该API的请求涉及一系列HTTP请求,例如,对另一个API的请求或通过GET请求获取页面。因此,大部分“工作”都涉及等待其他请求解决。
我的问题是:最佳的Gunicorn工作程序配置(工作程序编号和类)是什么,以便从上述服务器上部署的这些API中获得最佳性能(最好是在并发和每秒请求方面)?
反身我会选择一些gevent级的工人,但是我一直在寻找文档来验证上述决定,但无济于事。
任何输入将不胜感激:)
这个问题已作为 GH 问题发布在https://github.com/graphql-python/graphene-sqlalchemy/issues/134下,但我想我也将其发布在这里以吸引大众。
完整的工作演示可以在https://github.com/somada141/demo-graphql-sqlalchemy-falcon下找到。
考虑以下 SQLAlchemy ORM 类:
class Author(Base, OrmBaseMixin):
__tablename__ = "authors"
author_id = sqlalchemy.Column(
sqlalchemy.types.Integer(),
primary_key=True,
)
name_first = sqlalchemy.Column(
sqlalchemy.types.Unicode(length=80),
nullable=False,
)
name_last = sqlalchemy.Column(
sqlalchemy.types.Unicode(length=80),
nullable=False,
)
Run Code Online (Sandbox Code Playgroud)
简单地包装在SQLAlchemyObjectType这样的中:
class TypeAuthor(SQLAlchemyObjectType):
class Meta:
model = Author
Run Code Online (Sandbox Code Playgroud)
并通过以下方式暴露:
author = graphene.Field(
TypeAuthor,
author_id=graphene.Argument(type=graphene.Int, required=False),
name_first=graphene.Argument(type=graphene.String, required=False),
name_last=graphene.Argument(type=graphene.String, required=False),
)
@staticmethod
def resolve_author(
args,
info,
author_id: Union[int, None] = None,
name_first: Union[str, None] = None,
name_last: Union[str, None] = None,
):
query = …Run Code Online (Sandbox Code Playgroud) 我需要创建维管树模型的样条线或折线表示(请参见下文)。

该模型采用STL格式,因此我具有所有顶点的xyz坐标。这些线应该穿过血管网格的中心,因此我认为最好的方法是通过顶点云进行样条回归。另外,如果我可以在给定的点(例如,折线的坐标)上获得容器的半径,那将是很好的。

我浏览了这个论坛和VTK网站(假设他们对这种事情有一个简单的实现),但是到目前为止,我还没有找到可以使用的东西。有谁知道可以做到这一点的Python模块或VTK类(我会从Python调用它)?我在此找到的python模块全部用于2D数据。
非常感谢!
编辑:我遇到了一个名为VMTK的库,该库几乎专门处理血管分割,并具有所谓的“ 中心线计算 ”功能。但是,它们通常要求在其末端“切割”船只并定义“源点”。但是,在我的模型中,可以看到端点被“封顶”,这使事情变得更加复杂。如果找到解决方案,请在此处发布
我想要做的是相当简单,但到目前为止我还没有找到一个简单的方法:
我有一个带有浮点值的3D直线网格(因此3个坐标轴-1D numpy数组 - 用于网格单元的中心,3D numpy数组具有相应的形状,每个单元格中心都有一个值),我想插值(或您可以将其整个数组称为子样本数据(例如,尺寸因子为5),并使用线性插值.我见过的所有方法都涉及2D,然后是1D插值或VTK技巧,而不是使用(可移植性).
有人会建议一种方法,相当于在3D阵列中同时取5x5x5单元,平均并返回每个方向5倍的阵列吗?
提前感谢您的任何建议
编辑: 这是数据的样子,'d'是表示3D网格细胞的3D数组.每个单元格都有一个标量浮点值(在我的情况下是压力),'x','y'和'z'是三个1D数组,包含每个单元格的单元格的空间坐标(参见形状以及'x'数组的方式)好像)
In [42]: x.shape
Out[42]: (181L,)
In [43]: y.shape
Out[43]: (181L,)
In [44]: z.shape
Out[44]: (421L,)
In [45]: d.shape
Out[45]: (181L, 181L, 421L)
In [46]: x
Out[46]:
array([-0.410607 , -0.3927568 , -0.37780656, -0.36527296, -0.35475321,
-0.34591168, -0.33846866, -0.33219107, -0.32688467, -0.3223876 ,
...
0.34591168, 0.35475321, 0.36527296, 0.37780656, 0.3927568 ,
0.410607 ])
Run Code Online (Sandbox Code Playgroud)
我想做的是创建一个3D数组,让我们说一个90x90x210的形状(大约缩小2倍),首先从具有上述尺寸的阵列上的轴上对坐标进行二次采样,然后将3D数据"插值"到那个阵列.我不确定'插值'是否是正确的术语.下采样?平均?这是数据的2D切片:
python ×5
vtk ×2
3d ×1
concurrency ×1
gevent ×1
graphics ×1
graphql ×1
gunicorn ×1
image ×1
numpy ×1
paraview ×1
regression ×1
rest ×1
sampling ×1
sql ×1
sqlalchemy ×1
stl-format ×1