Skip to main content

EdgeFixer repairs bright and dark line artifacts near the border of an image.

Project description

EdgeFixer

ContinuityFixer(clip clip, int "left", int "top", int "right", int "bottom", int "radius")
ReferenceFixer(clip clip, clip ref, int "left", int "top", int "right", int "bottom", int "radius")

edgefixer.Continuity(clip clip, int "left", int "top", int "right", int "bottom", int "radius")
edgefixer.Reference(clip clip, clip ref, int "left", int "top", int "right", int "bottom", int "radius")

EdgeFixer repairs bright and dark line artifacts near the border of an image. When an image is resampled with a negative-lobe kernel, such as Bicubic or Lanczos, a series of bright and dark lines may appear around the image borders. These lines need not be cropped, as they contain spatial information that can be recovered. EdgeFixer uses least squares regression to correct the offending lines based on a reference line. ContinuityFixer uses the adjacent line as the reference, whereas ReferenceFixer uses an external reference image.

  • left, right, top, bottom - the number of lines to filter along each edge
  • radius - limit the window used for the least squares regression, useful in the presence of overlaid content

Examples

This example image (4x magnification) is taken from a commercial Blu-ray Disc. The use of bicubic image resizing has left an artifact on the outermost row and column. This is easily corrected by using ContinuityFixer to match the brigthness against the next row/column.

edgefixer.Continuity(clip, top=1, right=1)

Before:

Before

After:

After

If the image contains many bright or dark line artifacts, the nearest artifact-free row may have a substantially different luminance, and thus be unsuitable for ContinuityFixer. This example image (4x magnification) is taken from a commercial DVD. A poor film transfer has left a beating pattern of alternating bright and dark lines on the border. The 10th pixel column has substantially different average brightness than the first column, as can be seen from the image shift.

edgefixer.Continuity(clip, left=10)

Before CF

In this case, an alternative luminance reference can be applied through ReferenceFixer. Since the bright and dark pixels alternate in the image, a 3-pixel box blur can be used to smooth out the luminance. This successfully reduces the visible pattern when used as the reference image. The blurred image is only used statistically, so the resulting image does not suffer from detail loss.

ref = std.BoxBlur(hradius=1, hpasses=1, vpasses=0)
edgefixer.Reference(clip, ref, left=10)

RF

Project details


Release history Release notifications | RSS feed

This version

2.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vapoursynth_edgefixer-2.1.tar.gz (10.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vapoursynth_edgefixer-2.1-py3-none-win_amd64.whl (30.5 kB view details)

Uploaded Python 3Windows x86-64

vapoursynth_edgefixer-2.1-py3-none-musllinux_1_2_x86_64.whl (9.6 kB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

vapoursynth_edgefixer-2.1-py3-none-musllinux_1_2_aarch64.whl (10.1 kB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

vapoursynth_edgefixer-2.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (10.0 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

vapoursynth_edgefixer-2.1-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (9.2 kB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

vapoursynth_edgefixer-2.1-py3-none-macosx_15_0_x86_64.whl (8.0 kB view details)

Uploaded Python 3macOS 15.0+ x86-64

vapoursynth_edgefixer-2.1-py3-none-macosx_15_0_arm64.whl (7.9 kB view details)

Uploaded Python 3macOS 15.0+ ARM64

File details

Details for the file vapoursynth_edgefixer-2.1.tar.gz.

File metadata

  • Download URL: vapoursynth_edgefixer-2.1.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vapoursynth_edgefixer-2.1.tar.gz
Algorithm Hash digest
SHA256 476046e1934fb06dc03439ed14687a122b25da244bafa73a119d72cf8a6efe02
MD5 1894f7ffb5b17b8f71fd3c38812704c2
BLAKE2b-256 786544885156db2b43f34011e0dca76e6f0efe9c95a6acedd73c9e1778b969ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_edgefixer-2.1.tar.gz:

Publisher: build.yml on vapoursynth/EdgeFixer-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_edgefixer-2.1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for vapoursynth_edgefixer-2.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6135ef970e48034d58ad23302f9b2eeccefdef1641d244fd54fc3155c7e26c75
MD5 090660df3ba2022a8b23c85dfbe4483e
BLAKE2b-256 f34c933caf8aeae2081e07005ea7fc02d6f691ef1bb2014d99e8297702495ea1

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_edgefixer-2.1-py3-none-win_amd64.whl:

Publisher: build.yml on vapoursynth/EdgeFixer-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_edgefixer-2.1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for vapoursynth_edgefixer-2.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8e1e7f18776ff2f5344935958653edca62a153eecad30b4d1bc34180e9362f37
MD5 f3efb830ad594d46c082d2988e5292cb
BLAKE2b-256 92ff565bc54e04ded8d9c506cb81571bf28b75a3ca7008f26759412eb1cfa30b

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_edgefixer-2.1-py3-none-musllinux_1_2_x86_64.whl:

Publisher: build.yml on vapoursynth/EdgeFixer-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_edgefixer-2.1-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for vapoursynth_edgefixer-2.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bc4a603185d90db5139fec8db0ad3b425f4c01a8c2d8eb1ed4723a179dd4c671
MD5 78d13a26417864feb4f61ed3c098c51c
BLAKE2b-256 9974d13afab9528fd66ffe59e063ec8caf086abcaf6833563604e85ba2b3d255

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_edgefixer-2.1-py3-none-musllinux_1_2_aarch64.whl:

Publisher: build.yml on vapoursynth/EdgeFixer-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_edgefixer-2.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vapoursynth_edgefixer-2.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a3c19ed588e1484534dc70ba42feb7451b66f9caad3ac02ce84c110a49ef44de
MD5 c07619350ef4c34557d875c52bb53208
BLAKE2b-256 28835806123bf87582e3eeb5194819e4d06beef1a791d02ad119bcb9997954d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_edgefixer-2.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build.yml on vapoursynth/EdgeFixer-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_edgefixer-2.1-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for vapoursynth_edgefixer-2.1-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 dacf9c3c64e52ffb56d0afc6a45a68c083e6fd2bacaa4cd0d03f51e0397e94b1
MD5 b3d49f985d9c95079e2fe1019d446987
BLAKE2b-256 b808a27ee18b6f852538bf709792d8d288370ddaf562847cda32519912b66241

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_edgefixer-2.1-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: build.yml on vapoursynth/EdgeFixer-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_edgefixer-2.1-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vapoursynth_edgefixer-2.1-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 02fb318cef35a36dd910d3bd627f301947c45597d9cfb5fd13dc44e1bb85a1c8
MD5 644327a9de10bdab71a166bcceea9052
BLAKE2b-256 5faacc4af8c0f516104befdef99497c246a9a3d4fdf9c76472a83f05cec69562

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_edgefixer-2.1-py3-none-macosx_15_0_x86_64.whl:

Publisher: build.yml on vapoursynth/EdgeFixer-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_edgefixer-2.1-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for vapoursynth_edgefixer-2.1-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 62c68b0e6a65e9a01a9093b67acc03e2a3490837a5ff7001648e024b78dabdbf
MD5 49d13f8620e370faec9e3875991dee4c
BLAKE2b-256 56ee167666666234f23ca3c669c7b6052e257f237d0770a59530b106a321d2a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_edgefixer-2.1-py3-none-macosx_15_0_arm64.whl:

Publisher: build.yml on vapoursynth/EdgeFixer-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page