0.0.13 • Published 10 months ago

nodegrapher v0.0.13

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

NodeGrapher

NodeGrapher 是一个 TypeScript/Node.js 包,用于将图像转换为空间图数据。该包提供了从图像中提取图结构的工具,适用于网络分析、路径规划和空间数据处理等应用。

安装

npm install nodegrapher

功能

  • 从图像中提取图结构
  • 生成类似道路的图网络
  • 可选的图形可视化
  • 支持 TypeScript
  • 灵活的输出格式

使用

基本用法

import { processImageToGraph, saveRoad, extractGraphFromImage, visualizeGraph } from 'nodegrapher';

// 处理图像并获取完整的图数据(包括障碍物)
const graphData = await processImageToGraph(
  'path/to/image.jpg',
  'output.json',
  1  // maxContainCount: 控制图处理的最大包含计数
);

// 生成并保存道路图(不含障碍物)
const roadGraph = await saveRoad(
  'path/to/image.jpg',  // 相同的输入图像
  'road.json'          // 输出路径(可选,默认为 "road.json")
);

// 从图像中可视化图形
const graph = await extractGraphFromImage('path/to/image.jpg', 10, 1);
await visualizeGraph('path/to/image.jpg', graph, 'visualization.jpg');

Neovim 插件

NodeGrapher 还支持通过 Neovim 插件将 JSON 图数据转换为 ASCII 字符表示。请访问 NodeGrapher.nvim 了解更多信息。

使用示例

在 Neovim 中使用 NodeGrapherToAscii 命令:

NodeGrapher Command

显示的图形窗口:

NodeGrapher Window

功能说明与差异

processImageToGraph

从图像中提取并保存完整的图结构,包括所有节点和障碍物。当需要图像的完整空间数据表示时,此函数非常有用。

saveRoad

生成并保存简化的道路图,专注于可导航路径,同时排除障碍物。这非常适用于仅需要道路网络结构的应用场景,例如路径规划。

功能差异

两者处理相同的输入图像,但根据特定用途生成不同的输出:

  • 完整图(processImageToGraph:包含所有空间数据,包括障碍物。
  • 道路图(saveRoad:仅包含道路网络结构,为导航优化。

extractGraphFromImage

直接从图像中提取图结构,而不保存到文件。当需要进一步处理或分析图结构时,此函数非常有用。


filterRoadNodes

过滤掉由 edges_list 形成的任意多边形内部的新节点。

Before and After Filtering

API 参考

processImageToGraph(imagePath: string, outputPath: string, maxContainCount?: number, numX?: number): Promise<GraphData | undefined>

处理图像以提取图结构并将其保存为 JSON 文件。

  • imagePath: 输入图像文件的路径
  • outputPath: 图数据将保存为 JSON 的路径
  • maxContainCount (可选): 图处理的最大包含值(默认: 0)
  • numX (可选): 在 x 方向生成的节点数(默认: 15)

返回一个 Promise,解析为图数据。

saveRoad(imagePath: string, outputPath?: string, maxContainCount?: number, numX?: number): Promise<GraphData | undefined>

根据提供的图像生成并保存道路图。

  • imagePath: 输入图像文件的路径
  • outputPath (可选): 道路图将保存为 JSON 的路径(默认: "road.json")
  • maxContainCount (可选): 图处理的最大包含值(默认: 0)
  • numX (可选): 在 x 方向生成的节点数(默认: 15)

返回一个 Promise,解析为道路图数据,或在无法生成道路图时解析为 undefined。

extractGraphFromImage(imagePath: string, distanceThreshold?: number, maxContainCount?: number, numX?: number): Promise<GraphData>

直接从图像中提取图结构而不保存到文件。

  • imagePath: 输入图像文件的路径
  • distanceThreshold (可选): 节点连接的距离阈值(默认: 10)
  • maxContainCount (可选): 图处理的最大包含值(默认: 0)
  • numX (可选): 在 x 方向生成的节点数(默认: 15)

返回一个 Promise,解析为图数据。

removeTextFromImage(imagePath: string, outputPath: string): Promise<void>

使用基于 OpenCV 的文本检测从图像中移除文本。

  • imagePath: 输入图像文件的路径
  • outputPath: 处理后的图像将保存的路径
  • 使用自适应阈值和轮廓检测来识别和移除文本区域
  • 用周围的背景颜色填充移除的文本区域

返回一个 Promise,当文本移除完成时解析。

visualizeGraph(imagePath: string, graph: GraphData, outputPath: string): Promise<void>

在图像上可视化图结构。

  • imagePath: 输入图像文件的路径
  • graph: 要可视化的图数据
  • outputPath: 可视化结果将保存的路径

返回一个 Promise,当可视化完成时解析。

类型

GraphData

interface GraphData {
  nodes: Node[];
  lines: Line[];
  nodesList?: Node[][];
}

许可证

MIT 许可证 - 详见 LICENSE 文件

贡献

欢迎贡献!请随时提交 Pull Request。

0.0.13

10 months ago

0.0.12

11 months ago

0.0.11

11 months ago

0.0.10

11 months ago

0.0.9

11 months ago

0.0.8

11 months ago

0.0.7

11 months ago

0.0.6

11 months ago

0.0.5

11 months ago

0.0.4

11 months ago

0.0.3

11 months ago

0.0.2

11 months ago

0.0.1

11 months ago