
    9iX
                        S SK JrJrJrJr  S SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJrJr  S S	KJr  S S
KJr  S SKJr  S SKJr  \" 5       r\R8                  " \R:                  \	R:                  S9 " S S\5      5       rg)    )AnyDictOptionalUnionN)
transforms)	Pipelines)Model)RRDBImageDebanding)
OutputKeys)InputPipeline)	PIPELINES)	LoadImage)Tasks)
get_logger)module_namec                      ^  \ rS rSrS\\\4   4U 4S jjrS\S\	\\
4   4S jr\R                  " 5       S\	\\
4   S\	\\
4   4U 4S jj5       rS\	\\
4   S\	\\
4   4S	 jrS
rU =r$ )ImageDebandingPipeline   modelc                   > [         TU ]  " SSU0UD6  U R                  R                  5         [        R
                  R                  5       (       a  [        R                  " S5      U l        g[        R                  " S5      U l        g)a  The inference pipeline for image debanding.

Args:
    model (`str` or `Model` or module instance): A model instance or a model local dir
        or a model id in the model hub.
    preprocessor (`Preprocessor`, `optional`): A Preprocessor instance.
    kwargs (dict, `optional`):
        Extra kwargs passed into the preprocessor's constructor.

Example:
    >>> import cv2
    >>> from modelscope.outputs import OutputKeys
    >>> from modelscope.pipelines import pipeline
    >>> from modelscope.utils.constant import Tasks
    >>> debanding = pipeline(Tasks.image_debanding, model='damo/cv_rrdb_image-debanding')
        result = debanding(
            'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/debanding.png')
    >>> cv2.imwrite('result.png', result[OutputKeys.OUTPUT_IMG])
r   cudacpuN )	super__init__r   evaltorchr   is_availabledevice_device)selfr   kwargs	__class__s      p/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/pipelines/cv/image_debanding_pipeline.pyr   ImageDebandingPipeline.__init__   s[    ( 	/u//

::""$$ <</DL <<.DL    inputreturnc                     [         R                  " U5      n[        R                  " [        R                  " 5       /5      nU" U5      nSUR                  S5      R                  U R                  5      0nU$ )Nsrcr   )r   convert_to_imgr   ComposeToTensor	unsqueezetor!   )r"   r(   imgtest_transformsresults        r%   
preprocess!ImageDebandingPipeline.preprocess4   s_    &&u-$,,j.A.A.C-DEc"q),,T\\:;r'   c                 "   > [         TU ]  U5      $ )N)r   forward)r"   r(   r$   s     r%   r7   ImageDebandingPipeline.forward;   s    wu%%r'   inputsc                    US   R                  S5      S-  R                  [        R                  5      R	                  5       R                  SSS5      R                  5       S S 2S S 2S S S24   n[        R                  U0$ )Noutputsr   g     o@      )	squeezetyper   uint8r   permutenumpyr   
OUTPUT_IMG)r"   r9   
output_imgs      r%   postprocess"ImageDebandingPipeline.postprocess?   sk    Y'//2T9??KKwwq!Q/1dd
D
%%z22r'   )r!   )__name__
__module____qualname____firstlineno__r   r
   strr   r   r   r   r4   r   no_gradr7   rF   __static_attributes____classcell__)r$   s   @r%   r   r      s    /e$6$;< /8 $sCx.  ]]_&T#s(^ &S#X & &3$sCx. 3T#s(^ 3 3r'   r   )typingr   r   r   r   r   torchvisionr   modelscope.metainfor   modelscope.models.baser	   $modelscope.models.cv.image_debandingr
   modelscope.outputsr   modelscope.pipelines.baser   r   modelscope.pipelines.builderr   modelscope.preprocessorsr   modelscope.utils.constantr   modelscope.utils.loggerr   loggerregister_moduleimage_debandingr   r   r'   r%   <module>r^      sl    - -  " ) ( C ) 5 2 . + .	 	y'@'@B,3X ,3B,3r'   