OpenPrinting / OpenPrinting/go-mfp

Add Python image evaluation library callable via cpython bindings

Open
#22 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
23
Forks
12
Avg merge
1d 27m
Merged PRs (30d)
7

Description

Background

Image evaluation should be implemented as a clean Python library
callable directly from Go via the existing cpython bindings,
rather than as a subprocess bridge.

Proposed Approach

Create image_eval.py with a simple interface following the same
pattern as modeling/model.go:

def compare(reference_path, output_path):
# Returns dict with ssim, mse, psnr, is_grayscale, color_type

def passed(reference_path, output_path, threshold=0.80):
# Returns True if output passes quality threshold

Questions

  1. Is this the right interface for the cpython bindings to consume?
  2. Should this live in go-mfp or in the image evaluation repo?
  3. Are there any constraints on what Python types can be returned
    via the cpython bindings?

Contributor guide

No contributing guide indexed for this repository

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

Start by reviewing the existing cpython bindings in go-mfp and the interface pattern in modeling/model.go. Locate the image evaluation repository and determine where image_eval.py belongs, then resolve the proposed compare and passed interfaces and supported Python return types. Done means an agreed location, binding-compatible interface, and implementation plan.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, python
Domain
backend, computer-vision
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.