2 Commits

Author SHA1 Message Date
3400df2d52 refactor!: remove utils.convert_to_srgb 2023-10-12 18:08:54 +08:00
4fd31b1e9b impr: module __init__ entries 2023-10-12 17:53:51 +08:00
5 changed files with 8 additions and 26 deletions

View File

@ -0,0 +1,2 @@
from .common import DeviceOcrResult
from .ocr import DeviceOcr

View File

@ -0,0 +1,3 @@
from .definition import *
from .extractor import *
from .masker import *

View File

@ -1 +1,2 @@
from .auto import *
from .common import DeviceRois

View File

@ -5,9 +5,9 @@ from ..definition.common import DeviceRois
class DeviceRoisExtractor:
def __init__(self, img: cv2.Mat, sizes: DeviceRois):
def __init__(self, img: cv2.Mat, rois: DeviceRois):
self.img = img
self.sizes = sizes
self.sizes = rois
def __construct_int_rect(self, rect):
return tuple(round(r) for r in rect)

View File

@ -1,10 +1,8 @@
import io
from collections.abc import Iterable
from typing import Callable, TypeVar, Union, overload
import cv2
import numpy as np
from PIL import Image, ImageCms
from .types import XYWHRect
@ -46,25 +44,3 @@ def apply_factor(item, factor: float):
return item * factor
elif isinstance(item, Iterable):
return item.__class__([i * factor for i in item])
def convert_to_srgb(pil_img: Image.Image):
"""
Convert PIL image to sRGB color space (if possible)
and save the converted file.
https://stackoverflow.com/a/65667797/16484891
CC BY-SA 4.0
"""
icc = pil_img.info.get("icc_profile", "")
icc_conv = ""
if icc:
io_handle = io.BytesIO(icc) # virtual file
src_profile = ImageCms.ImageCmsProfile(io_handle)
dst_profile = ImageCms.createProfile("sRGB")
img_conv = ImageCms.profileToProfile(pil_img, src_profile, dst_profile)
icc_conv = img_conv.info.get("icc_profile", "")
return img_conv if icc != icc_conv else pil_img