Skip to content

Latest commit

 

History

History
108 lines (83 loc) · 4.57 KB

README-ZH.md

File metadata and controls

108 lines (83 loc) · 4.57 KB

PyPI - Version GitHub Workflow Status (with event)PyPI - License Static Badge Static Badge

介绍

该项目用于根据文本的高度将网页的长截图分割成几个部分。主要思想是找到图像的低变化区域,然后在低变化区域中找到分割线。 红线是分割线 输出的是网页的小而完整的图像,可以用于使用Screen-to-code生成网页或训练模型。 更多结果可以在images目录中找到。

开始使用

安装

 pip install Web-page-Screenshot-Segmentation

在命令行中使用

获取图像的分割线的高度

python -m Web_page_Screenshot_Segmentation.master -f "path/to/img"

输出应该是个列表:[6, 868, 1912, 2672, 3568, 4444, 5124, 6036, 7698]。它是图像分割线的高度列表。 如果你想在图中显示这条分割线,可以加上 -s True参数:

python -m Web_page_Screenshot_Segmentation.master -f "path/to/img" -s True

在图像中画出分割线

python -m Web_page_Screenshot_Segmentation.drawer --image_file path/to/image.jpg --hl [100,200] --color (0,255,0)

切分图像

python -m Web_page_Screenshot_Segmentation.spliter --f path/to/image.jpg -ht "[233,456]"

你将得到分割图像,保存在命令返回的路径中。

更多用法解释请参照帮助:

python master.py --help
python spliter.py --help

从源码使用

split_heights 函数

split_heights 函数用于根据各种阈值将图像分割成几个部分。它接受以下参数:

  • file_path: 图像文件的路径。
  • split: 一个布尔值,指示是否分割图像。
  • height_threshold: 低变化区域的高度阈值。
  • variation_threshold: 低变化区域的变化阈值。
  • color_threshold: 颜色差异的阈值。
  • color_variation_threshold: 颜色差异变化的阈值。
  • merge_threshold: 两条线之间最小距离的阈值。

如果 splitFalse,函数返回分割线的高程列表;如果 splitTrue,则返回分割图像的路径。

示例用法

import Web_page_Screenshot_Segmentation
from Web_page_Screenshot_Segmentation.master import split_heights

# 在 'path/to/image.jpg' 分割图像为几个部分
split_image_path = split_heights(
    file_path='path/to/image.jpg',
    split=True,
    height_threshold=102,
    variation_threshold=0.5,
    color_threshold=100,
    color_variation_threshold=15,
    merge_threshold=350
)

print(f"分割后的图像保存在 {split_image_path}")

在这个例子中,根据提供的阈值,'path/to/image.jpg' 的图像被分割成几个部分。分割后的图像保存在函数返回的路径。

draw_line_from_file 函数

draw_line_from_file 函数用于在指定高度的图像上绘制线条。它接受以下参数:

  • image_file: 图像文件的路径。
  • heights: 在指定高度绘制线条的高程列表。
  • color: 线条的颜色。默认颜色为红色 (0, 0, 255)

该函数从提供的文件路径读取图像,在指定的高度绘制线条,然后将修改后的图像保存到新文件中。新文件保存在 result 目录下,与原始文件同名,但在文件扩展名前添加了 'result'。

如果函数在读取图像文件时遇到错误(例如,如果文件路径包含 '.' 或中文字符),则会抛出异常。

示例用法

import Web_page_Screenshot_Segmentation
from Web_page_Screenshot_Segmentation.spliter import draw_line_from_file

# 在 'path/to/image.jpg' 的图像上,在高度 100 和 200 处绘制线条
result_image_path = draw_line_from_file(
    image_file='path/to/image.jpg',
    heights=[100, 200],
    color=(0, 255, 0)  # 以绿色绘制线条
)

print(f"修改后的图像保存在 {result_image_path}")

在这个例子中,'path/to/image.jpg' 的图像被修改,以在高度 100 和 200 处绘制绿色线条。修改后的图像保存在函数返回的路径。