0.0.13 • Published 6 months ago

nodegrapher v0.0.13

Weekly downloads
-
License
MIT
Repository
github
Last release
6 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

6 months ago

0.0.12

6 months ago

0.0.11

6 months ago

0.0.10

6 months ago

0.0.9

6 months ago

0.0.8

6 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

7 months ago

0.0.3

7 months ago

0.0.2

7 months ago

0.0.1

7 months ago