image-rs / image-rs/imageproc

Alternative seam carving implementation

Open
#334 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
979
Forks
181
Avg merge
5m
Merged PRs (30d)
4

Description

Hello !
This is not an issue, but a follow-up on: https://github.com/image-rs/image/issues/982#issuecomment-508858512

I finished implementing what I wanted to, and my results are quite disappointing, but I wanted to keep you updated nonetheless, since you asked :)

So here are the results:

image

This represents the time taken versus the number of seams to remove. "this crate" is seamcarving

My approach, that I thought was smart, seems to be orders of magnitude slower than the traditional dynamic programming approach taken in imageproc.

The idea was that by using a path finding algorithm, only part of the image would have to be visited, and the higher energy regions would be completely ignored, without even having to compute the energy at every position in them.

I haven't investigated the performance issue yet, but it seems that the added complexity of path finding far outweighs the gains.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the linked issue discussion and compare the seamcarving crate's path-finding approach with imageproc's traditional dynamic-programming implementation. The report identifies a performance gap but does not name repository files, tests, a concrete change, or acceptance criteria, so the intended definition of done remains unspecified.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-vision, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.