如何从动脉分割获取斑块并以图形形式存储?
我有动脉的图像分割(X射线冠状动脉造影),并希望沿着分支提取斑块并以图形形式存储,以便保留冠状动脉树结构。
动脉分割图像和提取的中心线的一个示例:
例如,我希望结果看起来像这样:
我可以在其中获取节点的XY坐标,并且还具有连接边缘,该连接边缘将存储动脉的分支结构。然后,我将能够在每个节点处进行小2D图像贴片(节点将是中心点)。
I have image segmentations of arteries (Xray coronary angiography), and want to extract patches along the branches and store them in a graphical form so that it preserves the coronary tree structure.
An example of an artery segmentation image and the extracted centerline:
The centerline has been extracted using a skeletonisation algorithm, however, I am unsure how to extract points on the centerline and store them in a graph.
For example, I would want the result to look like this:
where I can get the x-y coordinates of the nodes, and also have the connecting edges, which will store the branch structure of the artery. Then, I will be able to take small 2D image patches at each node (the node will be the center point).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
算法:
棘手的部分是扫描。有两种方法:
使用GUI并通过鼠标光标在其上单击来定位节点和链接。这对于代码很简单,但是如果您有多个图像可以扫描。
图像处理。这对于代码非常复杂,但是可以自动化多个图像扫描。
我在C ++中编码了选项1。这是屏幕截图
用法:
扫描节点
扫描链接
在此应用程序的代码上显示在 https://github.com/jamesbremner/artery/artery
fyi这是节点和链接存储类的公共类界面
The algorithm:
The tricky part is scanning. There are two ways:
Use a GUI and locate nodes and links by clicking when the mouse cursor is on them. This is straightforward to code, but tedious if you have more than a few images to scan.
Image processing. This is very complex to code, but multiple image scanning can be automated.
I have coded option 1 in C++. Here is a screenshot
Usage:
Scanning nodes
Scanning links
The code for this application is at https://github.com/JamesBremner/artery
FYI here is the public class interface for the nodes and link storage class
filfinder 似乎可以处理此工作,特别是在其骨架和修剪部分。 (请参阅下面的链接中,它们具有细丝/分割的图形节点表示形式。)软件包通过将其首先转换为图形形式来分析细丝,您可以返回。此过程与某些输入参数自动化 - 如果您遵循其教程,您将能够调整自己更喜欢节点的严格性。
一旦获取了filfinder产生的节点列表,就可以使用节点的坐标来获取大小偏好的边界框来创建图像补丁。
这是一个没有代码的答案,但我希望这是实现您的请求的粗略指南。
FilFinder seems like it can handle this job, specifically in its skeleton and pruning section. (See in the link below where they have a graphical node representation of the filaments/segmentation.) The package analyzes filaments by turning them first into graphical form, which you can return. This process is automated with some entry parameters - if you follow their tutorial you'll be able to tune how stringent you'd prefer your nodes to be.
Once you obtain a list of nodes that FilFinder produces, you can use a node's coordinates to obtain a bounding box of your size preference to create image patches.
This is a no code answer, but I hope this serves as a rough guideline towards achieving your request.