# This file is auto-generated by alef — DO NOT EDIT. # alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75 # To regenerate: alef generate # To verify freshness: alef verify --exit-code # Issues & docs: https://github.com/kreuzberg-dev/alef defmodule Kreuzberg.ImagePreprocessingConfig do @moduledoc """ Image preprocessing configuration for OCR. These settings control how images are preprocessed before OCR to improve text recognition quality. Different preprocessing strategies work better for different document types. """ @typedoc "Image preprocessing configuration for OCR." @type t :: %__MODULE__{ target_dpi: integer(), auto_rotate: boolean(), deskew: boolean(), denoise: boolean(), contrast_enhance: boolean(), binarization_method: String.t() | nil, invert_colors: boolean() } defstruct target_dpi: 300, auto_rotate: true, deskew: true, denoise: false, contrast_enhance: false, binarization_method: "otsu", invert_colors: false defimpl Jason.Encoder do @doc false def encode(value, opts) do value |> Map.from_struct() |> Enum.reject(fn {_k, v} -> v == nil end) |> Enum.into(%{}) |> Jason.Encoder.encode(opts) end end end