import{S as Nn,i as kn,s as Zn,e as o,k as m,w as _,t as s,M as Wn,c as a,d as t,m as c,a as n,x as b,h as i,b as p,G as e,g,y,q as v,o as $,B as w,v as Ln,L as Dn}from"../../chunks/vendor-hf-doc-builder.js";import{T as qn}from"../../chunks/Tip-hf-doc-builder.js";import{D as M}from"../../chunks/Docstring-hf-doc-builder.js";import{C as Cn}from"../../chunks/CodeBlock-hf-doc-builder.js";import{I as La}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{E as Jn}from"../../chunks/ExampleCodeBlock-hf-doc-builder.js";function Sn(H){let f,T,I,h,E;return h=new Cn({props:{code:"JTIzJTIwV2UlMjBjYW4ndCUyMGluc3RhbnRpYXRlJTIwZGlyZWN0bHklMjB0aGUlMjBiYXNlJTIwY2xhc3MlMjAqSW1hZ2VQcm9jZXNzaW5nTWl4aW4qJTIwc28lMjBsZXQncyUyMHNob3clMjB0aGUlMjBleGFtcGxlcyUyMG9uJTIwYSUwQSUyMyUyMGRlcml2ZWQlMjBjbGFzcyUzQSUyMCpDTElQSW1hZ2VQcm9jZXNzb3IqJTBBaW1hZ2VfcHJvY2Vzc29yJTIwJTNEJTIwQ0xJUEltYWdlUHJvY2Vzc29yLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJvcGVuYWklMkZjbGlwLXZpdC1iYXNlLXBhdGNoMzIlMjIlMEEpJTIwJTIwJTIzJTIwRG93bmxvYWQlMjBpbWFnZV9wcm9jZXNzaW5nX2NvbmZpZyUyMGZyb20lMjBodWdnaW5nZmFjZS5jbyUyMGFuZCUyMGNhY2hlLiUwQWltYWdlX3Byb2Nlc3NvciUyMCUzRCUyMENMSVBJbWFnZVByb2Nlc3Nvci5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIyLiUyRnRlc3QlMkZzYXZlZF9tb2RlbCUyRiUyMiUwQSklMjAlMjAlMjMlMjBFLmcuJTIwaW1hZ2UlMjBwcm9jZXNzb3IlMjAob3IlMjBtb2RlbCklMjB3YXMlMjBzYXZlZCUyMHVzaW5nJTIwKnNhdmVfcHJldHJhaW5lZCgnLiUyRnRlc3QlMkZzYXZlZF9tb2RlbCUyRicpKiUwQWltYWdlX3Byb2Nlc3NvciUyMCUzRCUyMENMSVBJbWFnZVByb2Nlc3Nvci5mcm9tX3ByZXRyYWluZWQoJTIyLiUyRnRlc3QlMkZzYXZlZF9tb2RlbCUyRnByZXByb2Nlc3Nvcl9jb25maWcuanNvbiUyMiklMEFpbWFnZV9wcm9jZXNzb3IlMjAlM0QlMjBDTElQSW1hZ2VQcm9jZXNzb3IuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMm9wZW5haSUyRmNsaXAtdml0LWJhc2UtcGF0Y2gzMiUyMiUyQyUyMGRvX25vcm1hbGl6ZSUzREZhbHNlJTJDJTIwZm9vJTNERmFsc2UlMEEpJTBBYXNzZXJ0JTIwaW1hZ2VfcHJvY2Vzc29yLmRvX25vcm1hbGl6ZSUyMGlzJTIwRmFsc2UlMEFpbWFnZV9wcm9jZXNzb3IlMkMlMjB1bnVzZWRfa3dhcmdzJTIwJTNEJTIwQ0xJUEltYWdlUHJvY2Vzc29yLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJvcGVuYWklMkZjbGlwLXZpdC1iYXNlLXBhdGNoMzIlMjIlMkMlMjBkb19ub3JtYWxpemUlM0RGYWxzZSUyQyUyMGZvbyUzREZhbHNlJTJDJTIwcmV0dXJuX3VudXNlZF9rd2FyZ3MlM0RUcnVlJTBBKSUwQWFzc2VydCUyMGltYWdlX3Byb2Nlc3Nvci5kb19ub3JtYWxpemUlMjBpcyUyMEZhbHNlJTBBYXNzZXJ0JTIwdW51c2VkX2t3YXJncyUyMCUzRCUzRCUyMCU3QiUyMmZvbyUyMiUzQSUyMEZhbHNlJTdE",highlighted:`<span class="hljs-comment"># We can&#x27;t instantiate directly the base class *ImageProcessingMixin* so let&#x27;s show the examples on a</span>
<span class="hljs-comment"># derived class: *CLIPImageProcessor*</span>
image_processor = CLIPImageProcessor.from_pretrained(
    <span class="hljs-string">&quot;openai/clip-vit-base-patch32&quot;</span>
)  <span class="hljs-comment"># Download image_processing_config from huggingface.co and cache.</span>
image_processor = CLIPImageProcessor.from_pretrained(
    <span class="hljs-string">&quot;./test/saved_model/&quot;</span>
)  <span class="hljs-comment"># E.g. image processor (or model) was saved using *save_pretrained(&#x27;./test/saved_model/&#x27;)*</span>
image_processor = CLIPImageProcessor.from_pretrained(<span class="hljs-string">&quot;./test/saved_model/preprocessor_config.json&quot;</span>)
image_processor = CLIPImageProcessor.from_pretrained(
    <span class="hljs-string">&quot;openai/clip-vit-base-patch32&quot;</span>, do_normalize=<span class="hljs-literal">False</span>, foo=<span class="hljs-literal">False</span>
)
<span class="hljs-keyword">assert</span> image_processor.do_normalize <span class="hljs-keyword">is</span> <span class="hljs-literal">False</span>
image_processor, unused_kwargs = CLIPImageProcessor.from_pretrained(
    <span class="hljs-string">&quot;openai/clip-vit-base-patch32&quot;</span>, do_normalize=<span class="hljs-literal">False</span>, foo=<span class="hljs-literal">False</span>, return_unused_kwargs=<span class="hljs-literal">True</span>
)
<span class="hljs-keyword">assert</span> image_processor.do_normalize <span class="hljs-keyword">is</span> <span class="hljs-literal">False</span>
<span class="hljs-keyword">assert</span> unused_kwargs == {<span class="hljs-string">&quot;foo&quot;</span>: <span class="hljs-literal">False</span>}`}}),{c(){f=o("p"),T=s("Examples:"),I=m(),_(h.$$.fragment)},l(d){f=a(d,"P",{});var P=n(f);T=i(P,"Examples:"),P.forEach(t),I=c(d),b(h.$$.fragment,d)},m(d,P){g(d,f,P),e(f,T),g(d,I,P),y(h,d,P),E=!0},p:Dn,i(d){E||(v(h.$$.fragment,d),E=!0)},o(d){$(h.$$.fragment,d),E=!1},d(d){d&&t(f),d&&t(I),w(h,d)}}}function Vn(H){let f,T,I,h,E;return h=new Cn({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9JbWFnZVByb2Nlc3NvciUwQSUwQWltYWdlJTIwcHJvY2Vzc29yJTIwJTNEJTIwQXV0b0ltYWdlUHJvY2Vzc29yLmZyb21fcHJldHJhaW5lZCglMjJiZXJ0LWJhc2UtY2FzZWQlMjIpJTBBJTBBJTIzJTIwUHVzaCUyMHRoZSUyMGltYWdlJTIwcHJvY2Vzc29yJTIwdG8lMjB5b3VyJTIwbmFtZXNwYWNlJTIwd2l0aCUyMHRoZSUyMG5hbWUlMjAlMjJteS1maW5ldHVuZWQtYmVydCUyMi4lMEFpbWFnZSUyMHByb2Nlc3Nvci5wdXNoX3RvX2h1YiglMjJteS1maW5ldHVuZWQtYmVydCUyMiklMEElMEElMjMlMjBQdXNoJTIwdGhlJTIwaW1hZ2UlMjBwcm9jZXNzb3IlMjB0byUyMGFuJTIwb3JnYW5pemF0aW9uJTIwd2l0aCUyMHRoZSUyMG5hbWUlMjAlMjJteS1maW5ldHVuZWQtYmVydCUyMi4lMEFpbWFnZSUyMHByb2Nlc3Nvci5wdXNoX3RvX2h1YiglMjJodWdnaW5nZmFjZSUyRm15LWZpbmV0dW5lZC1iZXJ0JTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoImageProcessor

image processor = AutoImageProcessor.from_pretrained(<span class="hljs-string">&quot;bert-base-cased&quot;</span>)

<span class="hljs-comment"># Push the image processor to your namespace with the name &quot;my-finetuned-bert&quot;.</span>
image processor.push_to_hub(<span class="hljs-string">&quot;my-finetuned-bert&quot;</span>)

<span class="hljs-comment"># Push the image processor to an organization with the name &quot;my-finetuned-bert&quot;.</span>
image processor.push_to_hub(<span class="hljs-string">&quot;huggingface/my-finetuned-bert&quot;</span>)`}}),{c(){f=o("p"),T=s("Examples:"),I=m(),_(h.$$.fragment)},l(d){f=a(d,"P",{});var P=n(f);T=i(P,"Examples:"),P.forEach(t),I=c(d),b(h.$$.fragment,d)},m(d,P){g(d,f,P),e(f,T),g(d,I,P),y(h,d,P),E=!0},p:Dn,i(d){E||(v(h.$$.fragment,d),E=!0)},o(d){$(h.$$.fragment,d),E=!1},d(d){d&&t(f),d&&t(I),w(h,d)}}}function Bn(H){let f,T;return{c(){f=o("p"),T=s("This API is experimental and may have some slight breaking changes in the next releases.")},l(I){f=a(I,"P",{});var h=n(f);T=i(h,"This API is experimental and may have some slight breaking changes in the next releases."),h.forEach(t)},m(I,h){g(I,f,h),e(f,T)},d(I){I&&t(f)}}}function Fn(H){let f,T,I,h,E,d,P,nr,Et,Fr,Re,jt,Rr,Ae,zt,Ar,q,Q,sr,he,Ut,ir,Jt,Xr,S,ue,Dt,j,Ct,mr,Nt,kt,cr,Zt,Wt,lr,Lt,qt,Yr,z,_e,St,dr,Vt,Bt,pr,Ft,Or,U,be,Rt,gr,At,Xt,fr,Yt,Gr,V,ye,Ot,hr,Gt,Hr,J,ve,Ht,D,Qt,ur,Kt,eo,_r,ro,to,br,oo,ao,no,yr,so,Qr,B,$e,io,C,mo,vr,co,lo,$r,po,go,wr,fo,ho,Kr,F,we,uo,Ir,_o,et,R,Ie,bo,A,yo,xr,vo,$o,Mr,wo,Io,rt,X,xe,xo,N,Mo,Pr,Po,To,Tr,Eo,jo,Er,zo,Uo,tt,Y,Me,Jo,Pe,Do,jr,Co,No,ot,O,K,zr,Te,ko,Ur,Zo,at,u,Ee,Wo,Jr,Lo,qo,ee,je,So,ze,Vo,Xe,Bo,Fo,Ro,re,Ue,Ao,Je,Xo,Ye,Yo,Oo,Go,Z,De,Ho,Ce,Qo,Oe,Ko,ea,ra,te,ta,oe,Ne,oa,k,aa,Dr,na,sa,Cr,ia,ma,Nr,ca,la,da,W,ke,pa,Ze,ga,kr,fa,ha,ua,ae,_a,L,We,ba,Le,ya,Zr,va,$a,wa,ne,Ia,se,qe,xa,G,Ma,Wr,Pa,Ta,Ge,Ea,ja,za,ie,Se,Ua,Lr,Ja,Da,me,Ve,Ca,qr,Na,ka,ce,Be,Za,Sr,Wa,nt;return d=new La({}),he=new La({}),ue=new M({props:{name:"transformers.image_transforms.center_crop",anchor:"transformers.image_transforms.center_crop",parameters:[{name:"image",val:": ndarray"},{name:"size",val:": typing.Tuple[int, int]"},{name:"data_format",val:": typing.Union[transformers.image_utils.ChannelDimension, str, NoneType] = None"},{name:"return_numpy",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"transformers.image_transforms.center_crop.image",description:`<strong>image</strong> (<code>np.ndarray</code>) &#x2014;
The image to crop.`,name:"image"},{anchor:"transformers.image_transforms.center_crop.size",description:`<strong>size</strong> (<code>Tuple[int, int]</code>) &#x2014;
The target size for the cropped image.`,name:"size"},{anchor:"transformers.image_transforms.center_crop.data_format",description:`<strong>data_format</strong> (<code>str</code> or <code>ChannelDimension</code>, <em>optional</em>) &#x2014;
The channel dimension format for the output image. Can be one of:<ul>
<li><code>&quot;channels_first&quot;</code> or <code>ChannelDimension.FIRST</code>: image in (num_channels, height, width) format.</li>
<li><code>&quot;channels_last&quot;</code> or <code>ChannelDimension.LAST</code>: image in (height, width, num_channels) format.
If unset, will use the inferred format of the input image.</li>
</ul>`,name:"data_format"},{anchor:"transformers.image_transforms.center_crop.return_numpy",description:`<strong>return_numpy</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the cropped image as a numpy array. Used for backwards compatibility with the
previous ImageFeatureExtractionMixin method.<ul>
<li>Unset: will return the same type as the input image.</li>
<li><code>True</code>: will return a numpy array.</li>
<li><code>False</code>: will return a <code>PIL.Image.Image</code> object.</li>
</ul>`,name:"return_numpy"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L390",returnDescription:`
<p>The cropped image.</p>
`,returnType:`
<p><code>np.ndarray</code></p>
`}}),_e=new M({props:{name:"transformers.image_transforms.center_to_corners_format",anchor:"transformers.image_transforms.center_to_corners_format",parameters:[{name:"bboxes_center",val:": TensorType"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L518"}}),be=new M({props:{name:"transformers.image_transforms.corners_to_center_format",anchor:"transformers.image_transforms.corners_to_center_format",parameters:[{name:"bboxes_corners",val:": TensorType"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L578"}}),ye=new M({props:{name:"transformers.image_transforms.id_to_rgb",anchor:"transformers.image_transforms.id_to_rgb",parameters:[{name:"id_map",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L612"}}),ve=new M({props:{name:"transformers.image_transforms.normalize",anchor:"transformers.image_transforms.normalize",parameters:[{name:"image",val:": ndarray"},{name:"mean",val:": typing.Union[float, typing.Iterable[float]]"},{name:"std",val:": typing.Union[float, typing.Iterable[float]]"},{name:"data_format",val:": typing.Optional[transformers.image_utils.ChannelDimension] = None"}],parametersDescription:[{anchor:"transformers.image_transforms.normalize.image",description:`<strong>image</strong> (<code>np.ndarray</code>) &#x2014;
The image to normalize.`,name:"image"},{anchor:"transformers.image_transforms.normalize.mean",description:`<strong>mean</strong> (<code>float</code> or <code>Iterable[float]</code>) &#x2014;
The mean to use for normalization.`,name:"mean"},{anchor:"transformers.image_transforms.normalize.std",description:`<strong>std</strong> (<code>float</code> or <code>Iterable[float]</code>) &#x2014;
The standard deviation to use for normalization.`,name:"std"},{anchor:"transformers.image_transforms.normalize.data_format",description:`<strong>data_format</strong> (<code>ChannelDimension</code>, <em>optional</em>) &#x2014;
The channel dimension format of the output image. If unset, will use the inferred format from the input.`,name:"data_format"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L327"}}),$e=new M({props:{name:"transformers.image_transforms.pad",anchor:"transformers.image_transforms.pad",parameters:[{name:"image",val:": ndarray"},{name:"padding",val:": typing.Union[int, typing.Tuple[int, int], typing.Iterable[typing.Tuple[int, int]]]"},{name:"mode",val:": PaddingMode = <PaddingMode.CONSTANT: 'constant'>"},{name:"constant_values",val:": typing.Union[float, typing.Iterable[float]] = 0.0"},{name:"data_format",val:": typing.Union[transformers.image_utils.ChannelDimension, str, NoneType] = None"},{name:"input_data_format",val:": typing.Union[transformers.image_utils.ChannelDimension, str, NoneType] = None"}],parametersDescription:[{anchor:"transformers.image_transforms.pad.image",description:`<strong>image</strong> (<code>np.ndarray</code>) &#x2014;
The image to pad.`,name:"image"},{anchor:"transformers.image_transforms.pad.padding",description:`<strong>padding</strong> (<code>int</code> or <code>Tuple[int, int]</code> or <code>Iterable[Tuple[int, int]]</code>) &#x2014;
Padding to apply to the edges of the height, width axes. Can be one of three formats:<ul>
<li><code>((before_height, after_height), (before_width, after_width))</code> unique pad widths for each axis.</li>
<li><code>((before, after),)</code> yields same before and after pad for height and width.</li>
<li><code>(pad,)</code> or int is a shortcut for before = after = pad width for all axes.</li>
</ul>`,name:"padding"},{anchor:"transformers.image_transforms.pad.mode",description:`<strong>mode</strong> (<code>PaddingMode</code>) &#x2014;
The padding mode to use. Can be one of:<ul>
<li><code>&quot;constant&quot;</code>: pads with a constant value.</li>
<li><code>&quot;reflect&quot;</code>: pads with the reflection of the vector mirrored on the first and last values of the
vector along each axis.</li>
<li><code>&quot;replicate&quot;</code>: pads with the replication of the last value on the edge of the array along each axis.</li>
<li><code>&quot;symmetric&quot;</code>: pads with the reflection of the vector mirrored along the edge of the array.</li>
</ul>`,name:"mode"},{anchor:"transformers.image_transforms.pad.constant_values",description:`<strong>constant_values</strong> (<code>float</code> or <code>Iterable[float]</code>, <em>optional</em>) &#x2014;
The value to use for the padding if <code>mode</code> is <code>&quot;constant&quot;</code>.`,name:"constant_values"},{anchor:"transformers.image_transforms.pad.data_format",description:`<strong>data_format</strong> (<code>str</code> or <code>ChannelDimension</code>, <em>optional</em>) &#x2014;
The channel dimension format for the output image. Can be one of:<ul>
<li><code>&quot;channels_first&quot;</code> or <code>ChannelDimension.FIRST</code>: image in (num_channels, height, width) format.</li>
<li><code>&quot;channels_last&quot;</code> or <code>ChannelDimension.LAST</code>: image in (height, width, num_channels) format.
If unset, will use same as the input image.</li>
</ul>`,name:"data_format"},{anchor:"transformers.image_transforms.pad.input_data_format",description:`<strong>input_data_format</strong> (<code>str</code> or <code>ChannelDimension</code>, <em>optional</em>) &#x2014;
The channel dimension format for the input image. Can be one of:<ul>
<li><code>&quot;channels_first&quot;</code> or <code>ChannelDimension.FIRST</code>: image in (num_channels, height, width) format.</li>
<li><code>&quot;channels_last&quot;</code> or <code>ChannelDimension.LAST</code>: image in (height, width, num_channels) format.
If unset, will use the inferred format of the input image.</li>
</ul>`,name:"input_data_format"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L642",returnDescription:`
<p>The padded image.</p>
`,returnType:`
<p><code>np.ndarray</code></p>
`}}),we=new M({props:{name:"transformers.image_transforms.rgb_to_id",anchor:"transformers.image_transforms.rgb_to_id",parameters:[{name:"color",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L601"}}),Ie=new M({props:{name:"transformers.image_transforms.rescale",anchor:"transformers.image_transforms.rescale",parameters:[{name:"image",val:": ndarray"},{name:"scale",val:": float"},{name:"data_format",val:": typing.Optional[transformers.image_utils.ChannelDimension] = None"},{name:"dtype",val:" = <class 'numpy.float32'>"}],parametersDescription:[{anchor:"transformers.image_transforms.rescale.image",description:`<strong>image</strong> (<code>np.ndarray</code>) &#x2014;
The image to rescale.`,name:"image"},{anchor:"transformers.image_transforms.rescale.scale",description:`<strong>scale</strong> (<code>float</code>) &#x2014;
The scale to use for rescaling the image.`,name:"scale"},{anchor:"transformers.image_transforms.rescale.data_format",description:`<strong>data_format</strong> (<code>ChannelDimension</code>, <em>optional</em>) &#x2014;
The channel dimension format of the image. If not provided, it will be the same as the input image.`,name:"data_format"},{anchor:"transformers.image_transforms.rescale.dtype",description:`<strong>dtype</strong> (<code>np.dtype</code>, <em>optional</em>, defaults to <code>np.float32</code>) &#x2014;
The dtype of the output image. Defaults to <code>np.float32</code>. Used for backwards compatibility with feature
extractors.`,name:"dtype"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L91",returnDescription:`
<p>The rescaled image.</p>
`,returnType:`
<p><code>np.ndarray</code></p>
`}}),xe=new M({props:{name:"transformers.image_transforms.resize",anchor:"transformers.image_transforms.resize",parameters:[{name:"image",val:""},{name:"size",val:": typing.Tuple[int, int]"},{name:"resample",val:": PILImageResampling = None"},{name:"reducing_gap",val:": typing.Optional[int] = None"},{name:"data_format",val:": typing.Optional[transformers.image_utils.ChannelDimension] = None"},{name:"return_numpy",val:": bool = True"}],parametersDescription:[{anchor:"transformers.image_transforms.resize.image",description:`<strong>image</strong> (<code>PIL.Image.Image</code> or <code>np.ndarray</code> or <code>torch.Tensor</code>) &#x2014;
The image to resize.`,name:"image"},{anchor:"transformers.image_transforms.resize.size",description:`<strong>size</strong> (<code>Tuple[int, int]</code>) &#x2014;
The size to use for resizing the image.`,name:"size"},{anchor:"transformers.image_transforms.resize.resample",description:`<strong>resample</strong> (<code>int</code>, <em>optional</em>, defaults to <code>PILImageResampling.BILINEAR</code>) &#x2014;
The filter to user for resampling.`,name:"resample"},{anchor:"transformers.image_transforms.resize.reducing_gap",description:`<strong>reducing_gap</strong> (<code>int</code>, <em>optional</em>) &#x2014;
Apply optimization by resizing the image in two steps. The bigger <code>reducing_gap</code>, the closer the result to
the fair resampling. See corresponding Pillow documentation for more details.`,name:"reducing_gap"},{anchor:"transformers.image_transforms.resize.data_format",description:`<strong>data_format</strong> (<code>ChannelDimension</code>, <em>optional</em>) &#x2014;
The channel dimension format of the output image. If unset, will use the inferred format from the input.`,name:"data_format"},{anchor:"transformers.image_transforms.resize.return_numpy",description:`<strong>return_numpy</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether or not to return the resized image as a numpy array. If False a <code>PIL.Image.Image</code> object is
returned.`,name:"return_numpy"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L261",returnDescription:`
<p>The resized image.</p>
`,returnType:`
<p><code>np.ndarray</code></p>
`}}),Me=new M({props:{name:"transformers.image_transforms.to_pil_image",anchor:"transformers.image_transforms.to_pil_image",parameters:[{name:"image",val:": typing.Union[numpy.ndarray, ForwardRef('PIL.Image.Image'), ForwardRef('torch.Tensor'), ForwardRef('tf.Tensor'), ForwardRef('jnp.ndarray')]"},{name:"do_rescale",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"transformers.image_transforms.to_pil_image.image",description:`<strong>image</strong> (<code>PIL.Image.Image</code> or <code>numpy.ndarray</code> or <code>torch.Tensor</code> or <code>tf.Tensor</code>) &#x2014;
The image to convert to the <code>PIL.Image</code> format.`,name:"image"},{anchor:"transformers.image_transforms.to_pil_image.do_rescale",description:`<strong>do_rescale</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to apply the scaling factor (to make pixel values integers between 0 and 255). Will default
to <code>True</code> if the image type is a floating type and casting to <code>int</code> would result in a loss of precision,
and <code>False</code> otherwise.`,name:"do_rescale"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_transforms.py#L148",returnDescription:`
<p>The converted image.</p>
`,returnType:`
<p><code>PIL.Image.Image</code></p>
`}}),Te=new La({}),Ee=new M({props:{name:"class transformers.ImageProcessingMixin",anchor:"transformers.ImageProcessingMixin",parameters:[{name:"**kwargs",val:""}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L59"}}),je=new M({props:{name:"from_dict",anchor:"transformers.ImageProcessingMixin.from_dict",parameters:[{name:"image_processor_dict",val:": typing.Dict[str, typing.Any]"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.ImageProcessingMixin.from_dict.image_processor_dict",description:`<strong>image_processor_dict</strong> (<code>Dict[str, Any]</code>) &#x2014;
Dictionary that will be used to instantiate the image processor object. Such a dictionary can be
retrieved from a pretrained checkpoint by leveraging the
<a href="/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin.to_dict">to_dict()</a> method.`,name:"image_processor_dict"},{anchor:"transformers.ImageProcessingMixin.from_dict.kwargs",description:`<strong>kwargs</strong> (<code>Dict[str, Any]</code>) &#x2014;
Additional parameters from which to initialize the image processor object.`,name:"kwargs"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L320",returnDescription:`
<p>The image processor object instantiated from those
parameters.</p>
`,returnType:`
<p><a
  href="/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin"
>ImageProcessingMixin</a></p>
`}}),Ue=new M({props:{name:"from_json_file",anchor:"transformers.ImageProcessingMixin.from_json_file",parameters:[{name:"json_file",val:": typing.Union[str, os.PathLike]"}],parametersDescription:[{anchor:"transformers.ImageProcessingMixin.from_json_file.json_file",description:`<strong>json_file</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
Path to the JSON file containing the parameters.`,name:"json_file"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L377",returnDescription:`
<p>The image_processor object
instantiated from that JSON file.</p>
`,returnType:`
<p>A image processor of type <a
  href="/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin"
>ImageProcessingMixin</a></p>
`}}),De=new M({props:{name:"from_pretrained",anchor:"transformers.ImageProcessingMixin.from_pretrained",parameters:[{name:"pretrained_model_name_or_path",val:": typing.Union[str, os.PathLike]"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.ImageProcessingMixin.from_pretrained.pretrained_model_name_or_path",description:`<strong>pretrained_model_name_or_path</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
This can be either:</p>
<ul>
<li>a string, the <em>model id</em> of a pretrained image_processor hosted inside a model repo on
huggingface.co. Valid model ids can be located at the root-level, like <code>bert-base-uncased</code>, or
namespaced under a user or organization name, like <code>dbmdz/bert-base-german-cased</code>.</li>
<li>a path to a <em>directory</em> containing a image processor file saved using the
<a href="/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin.save_pretrained">save_pretrained()</a> method, e.g.,
<code>./my_model_directory/</code>.</li>
<li>a path or url to a saved image processor JSON <em>file</em>, e.g.,
<code>./my_model_directory/preprocessor_config.json</code>.</li>
</ul>`,name:"pretrained_model_name_or_path"},{anchor:"transformers.ImageProcessingMixin.from_pretrained.cache_dir",description:`<strong>cache_dir</strong> (<code>str</code> or <code>os.PathLike</code>, <em>optional</em>) &#x2014;
Path to a directory in which a downloaded pretrained model image processor should be cached if the
standard cache should not be used.`,name:"cache_dir"},{anchor:"transformers.ImageProcessingMixin.from_pretrained.force_download",description:`<strong>force_download</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to force to (re-)download the image processor files and override the cached versions if
they exist.`,name:"force_download"},{anchor:"transformers.ImageProcessingMixin.from_pretrained.resume_download",description:`<strong>resume_download</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to delete incompletely received file. Attempts to resume the download if such a file
exists.`,name:"resume_download"},{anchor:"transformers.ImageProcessingMixin.from_pretrained.proxies",description:`<strong>proxies</strong> (<code>Dict[str, str]</code>, <em>optional</em>) &#x2014;
A dictionary of proxy servers to use by protocol or endpoint, e.g., <code>{&apos;http&apos;: &apos;foo.bar:3128&apos;, &apos;http://hostname&apos;: &apos;foo.bar:4012&apos;}.</code> The proxies are used on each request.`,name:"proxies"},{anchor:"transformers.ImageProcessingMixin.from_pretrained.use_auth_token",description:`<strong>use_auth_token</strong> (<code>str</code> or <code>bool</code>, <em>optional</em>) &#x2014;
The token to use as HTTP bearer authorization for remote files. If <code>True</code>, or not specified, will use
the token generated when running <code>huggingface-cli login</code> (stored in <code>~/.huggingface</code>).`,name:"use_auth_token"},{anchor:"transformers.ImageProcessingMixin.from_pretrained.revision",description:`<strong>revision</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;main&quot;</code>) &#x2014;
The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
git-based system for storing models and other artifacts on huggingface.co, so <code>revision</code> can be any
identifier allowed by git.`,name:"revision"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L83",returnDescription:`
<p>A image processor of type <a
  href="/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin"
>ImageProcessingMixin</a>.</p>
`}}),te=new Jn({props:{anchor:"transformers.ImageProcessingMixin.from_pretrained.example",$$slots:{default:[Sn]},$$scope:{ctx:H}}}),Ne=new M({props:{name:"get_image_processor_dict",anchor:"transformers.ImageProcessingMixin.get_image_processor_dict",parameters:[{name:"pretrained_model_name_or_path",val:": typing.Union[str, os.PathLike]"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.ImageProcessingMixin.get_image_processor_dict.pretrained_model_name_or_path",description:`<strong>pretrained_model_name_or_path</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
The identifier of the pre-trained checkpoint from which we want the dictionary of parameters.`,name:"pretrained_model_name_or_path"},{anchor:"transformers.ImageProcessingMixin.get_image_processor_dict.subfolder",description:`<strong>subfolder</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;&quot;</code>) &#x2014;
In case the relevant files are located inside a subfolder of the model repo on huggingface.co, you can
specify the folder name here.`,name:"subfolder"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L217",returnDescription:`
<p>The dictionary(ies) that will be used to instantiate the image processor object.</p>
`,returnType:`
<p><code>Tuple[Dict, Dict]</code></p>
`}}),ke=new M({props:{name:"push_to_hub",anchor:"transformers.ImageProcessingMixin.push_to_hub",parameters:[{name:"repo_id",val:": str"},{name:"use_temp_dir",val:": typing.Optional[bool] = None"},{name:"commit_message",val:": typing.Optional[str] = None"},{name:"private",val:": typing.Optional[bool] = None"},{name:"use_auth_token",val:": typing.Union[bool, str, NoneType] = None"},{name:"max_shard_size",val:": typing.Union[int, str, NoneType] = '10GB'"},{name:"create_pr",val:": bool = False"},{name:"safe_serialization",val:": bool = False"},{name:"**deprecated_kwargs",val:""}],parametersDescription:[{anchor:"transformers.ImageProcessingMixin.push_to_hub.repo_id",description:`<strong>repo_id</strong> (<code>str</code>) &#x2014;
The name of the repository you want to push your image processor to. It should contain your organization name
when pushing to a given organization.`,name:"repo_id"},{anchor:"transformers.ImageProcessingMixin.push_to_hub.use_temp_dir",description:`<strong>use_temp_dir</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to use a temporary directory to store the files saved before they are pushed to the Hub.
Will default to <code>True</code> if there is no directory named like <code>repo_id</code>, <code>False</code> otherwise.`,name:"use_temp_dir"},{anchor:"transformers.ImageProcessingMixin.push_to_hub.commit_message",description:`<strong>commit_message</strong> (<code>str</code>, <em>optional</em>) &#x2014;
Message to commit while pushing. Will default to <code>&quot;Upload image processor&quot;</code>.`,name:"commit_message"},{anchor:"transformers.ImageProcessingMixin.push_to_hub.private",description:`<strong>private</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not the repository created should be private.`,name:"private"},{anchor:"transformers.ImageProcessingMixin.push_to_hub.use_auth_token",description:`<strong>use_auth_token</strong> (<code>bool</code> or <code>str</code>, <em>optional</em>) &#x2014;
The token to use as HTTP bearer authorization for remote files. If <code>True</code>, will use the token generated
when running <code>huggingface-cli login</code> (stored in <code>~/.huggingface</code>). Will default to <code>True</code> if <code>repo_url</code>
is not specified.`,name:"use_auth_token"},{anchor:"transformers.ImageProcessingMixin.push_to_hub.max_shard_size",description:`<strong>max_shard_size</strong> (<code>int</code> or <code>str</code>, <em>optional</em>, defaults to <code>&quot;10GB&quot;</code>) &#x2014;
Only applicable for models. The maximum size for a checkpoint before being sharded. Checkpoints shard
will then be each of size lower than this size. If expressed as a string, needs to be digits followed
by a unit (like <code>&quot;5MB&quot;</code>).`,name:"max_shard_size"},{anchor:"transformers.ImageProcessingMixin.push_to_hub.create_pr",description:`<strong>create_pr</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to create a PR with the uploaded files or directly commit.`,name:"create_pr"},{anchor:"transformers.ImageProcessingMixin.push_to_hub.safe_serialization",description:`<strong>safe_serialization</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to convert the model weights in safetensors format for safer serialization.`,name:"safe_serialization"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/utils/hub.py#L734"}}),ae=new Jn({props:{anchor:"transformers.ImageProcessingMixin.push_to_hub.example",$$slots:{default:[Vn]},$$scope:{ctx:H}}}),We=new M({props:{name:"register_for_auto_class",anchor:"transformers.ImageProcessingMixin.register_for_auto_class",parameters:[{name:"auto_class",val:" = 'AutoImageProcessor'"}],parametersDescription:[{anchor:"transformers.ImageProcessingMixin.register_for_auto_class.auto_class",description:`<strong>auto_class</strong> (<code>str</code> or <code>type</code>, <em>optional</em>, defaults to <code>&quot;AutoImageProcessor &quot;</code>) &#x2014;
The auto class to register this new image processor with.`,name:"auto_class"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L431"}}),ne=new qn({props:{warning:!0,$$slots:{default:[Bn]},$$scope:{ctx:H}}}),qe=new M({props:{name:"save_pretrained",anchor:"transformers.ImageProcessingMixin.save_pretrained",parameters:[{name:"save_directory",val:": typing.Union[str, os.PathLike]"},{name:"push_to_hub",val:": bool = False"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.ImageProcessingMixin.save_pretrained.save_directory",description:`<strong>save_directory</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
Directory where the image processor JSON file will be saved (will be created if it does not exist).`,name:"save_directory"},{anchor:"transformers.ImageProcessingMixin.save_pretrained.push_to_hub",description:`<strong>push_to_hub</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to push your model to the Hugging Face model hub after saving it. You can specify the
repository you want to push to with <code>repo_id</code> (will default to the name of <code>save_directory</code> in your
namespace).
kwargs &#x2014;
Additional key word arguments passed along to the <a href="/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin.push_to_hub">push_to_hub()</a> method.`,name:"push_to_hub"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L169"}}),Se=new M({props:{name:"to_dict",anchor:"transformers.ImageProcessingMixin.to_dict",parameters:[],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L365",returnDescription:`
<p>Dictionary of all the attributes that make up this image processor instance.</p>
`,returnType:`
<p><code>Dict[str, Any]</code></p>
`}}),Ve=new M({props:{name:"to_json_file",anchor:"transformers.ImageProcessingMixin.to_json_file",parameters:[{name:"json_file_path",val:": typing.Union[str, os.PathLike]"}],parametersDescription:[{anchor:"transformers.ImageProcessingMixin.to_json_file.json_file_path",description:`<strong>json_file_path</strong> (<code>str</code> or <code>os.PathLike</code>) &#x2014;
Path to the JSON file in which this image_processor instance&#x2019;s parameters will be saved.`,name:"json_file_path"}],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L417"}}),Be=new M({props:{name:"to_json_string",anchor:"transformers.ImageProcessingMixin.to_json_string",parameters:[],source:"https://github.com/huggingface/transformers/blob/v4.30.0/src/transformers/image_processing_utils.py#L396",returnDescription:`
<p>String containing all the attributes that make up this feature_extractor instance in JSON format.</p>
`,returnType:`
<p><code>str</code></p>
`}}),{c(){f=o("meta"),T=m(),I=o("h1"),h=o("a"),E=o("span"),_(d.$$.fragment),P=m(),nr=o("span"),Et=s("Utilities for Image Processors"),Fr=m(),Re=o("p"),jt=s(`This page lists all the utility functions used by the image processors, mainly the functional
transformations used to process the images.`),Rr=m(),Ae=o("p"),zt=s("Most of those are only useful if you are studying the code of the image processors in the library."),Ar=m(),q=o("h2"),Q=o("a"),sr=o("span"),_(he.$$.fragment),Ut=m(),ir=o("span"),Jt=s("Image Transformations"),Xr=m(),S=o("div"),_(ue.$$.fragment),Dt=m(),j=o("p"),Ct=s("Crops the "),mr=o("code"),Nt=s("image"),kt=s(" to the specified "),cr=o("code"),Zt=s("size"),Wt=s(` using a center crop. Note that if the image is too small to be cropped to
the size given, it will be padded (so the returned result will always be of size `),lr=o("code"),Lt=s("size"),qt=s(")."),Yr=m(),z=o("div"),_(_e.$$.fragment),St=m(),dr=o("p"),Vt=s("Converts bounding boxes from center format to corners format."),Bt=m(),pr=o("p"),Ft=s(`center format: contains the coordinate for the center of the box and its width, height dimensions
(center_x, center_y, width, height)
corners format: contains the coodinates for the top-left and bottom-right corners of the box
(top_left_x, top_left_y, bottom_right_x, bottom_right_y)`),Or=m(),U=o("div"),_(be.$$.fragment),Rt=m(),gr=o("p"),At=s("Converts bounding boxes from corners format to center format."),Xt=m(),fr=o("p"),Yt=s(`corners format: contains the coodinates for the top-left and bottom-right corners of the box
(top_left_x, top_left_y, bottom_right_x, bottom_right_y)
center format: contains the coordinate for the center of the box and its the width, height dimensions
(center_x, center_y, width, height)`),Gr=m(),V=o("div"),_(ye.$$.fragment),Ot=m(),hr=o("p"),Gt=s("Converts unique ID to RGB color."),Hr=m(),J=o("div"),_(ve.$$.fragment),Ht=m(),D=o("p"),Qt=s("Normalizes "),ur=o("code"),Kt=s("image"),eo=s(" using the mean and standard deviation specified by "),_r=o("code"),ro=s("mean"),to=s(" and "),br=o("code"),oo=s("std"),ao=s("."),no=m(),yr=o("p"),so=s("image = (image - mean) / std"),Qr=m(),B=o("div"),_($e.$$.fragment),io=m(),C=o("p"),mo=s("Pads the "),vr=o("code"),co=s("image"),lo=s(" with the specified (height, width) "),$r=o("code"),po=s("padding"),go=s(" and "),wr=o("code"),fo=s("mode"),ho=s("."),Kr=m(),F=o("div"),_(we.$$.fragment),uo=m(),Ir=o("p"),_o=s("Converts RGB color to unique ID."),et=m(),R=o("div"),_(Ie.$$.fragment),bo=m(),A=o("p"),yo=s("Rescales "),xr=o("code"),vo=s("image"),$o=s(" by "),Mr=o("code"),wo=s("scale"),Io=s("."),rt=m(),X=o("div"),_(xe.$$.fragment),xo=m(),N=o("p"),Mo=s("Resizes "),Pr=o("code"),Po=s("image"),To=s(" to "),Tr=o("code"),Eo=s("(height, width)"),jo=s(" specified by "),Er=o("code"),zo=s("size"),Uo=s(" using the PIL library."),tt=m(),Y=o("div"),_(Me.$$.fragment),Jo=m(),Pe=o("p"),Do=s("Converts "),jr=o("code"),Co=s("image"),No=s(` to a PIL Image. Optionally rescales it and puts the channel dimension back as the last axis if
needed.`),ot=m(),O=o("h2"),K=o("a"),zr=o("span"),_(Te.$$.fragment),ko=m(),Ur=o("span"),Zo=s("ImageProcessingMixin"),at=m(),u=o("div"),_(Ee.$$.fragment),Wo=m(),Jr=o("p"),Lo=s(`This is an image processor mixin used to provide saving/loading functionality for sequential and image feature
extractors.`),qo=m(),ee=o("div"),_(je.$$.fragment),So=m(),ze=o("p"),Vo=s("Instantiates a type of "),Xe=o("a"),Bo=s("ImageProcessingMixin"),Fo=s(" from a Python dictionary of parameters."),Ro=m(),re=o("div"),_(Ue.$$.fragment),Ao=m(),Je=o("p"),Xo=s("Instantiates a image processor of type "),Ye=o("a"),Yo=s("ImageProcessingMixin"),Oo=s(` from the path to a JSON
file of parameters.`),Go=m(),Z=o("div"),_(De.$$.fragment),Ho=m(),Ce=o("p"),Qo=s("Instantiate a type of "),Oe=o("a"),Ko=s("ImageProcessingMixin"),ea=s(" from an image processor."),ra=m(),_(te.$$.fragment),ta=m(),oe=o("div"),_(Ne.$$.fragment),oa=m(),k=o("p"),aa=s("From a "),Dr=o("code"),na=s("pretrained_model_name_or_path"),sa=s(`, resolve to a dictionary of parameters, to be used for instantiating a
image processor of type `),Cr=o("code"),ia=s("~image_processor_utils.ImageProcessingMixin"),ma=s(" using "),Nr=o("code"),ca=s("from_dict"),la=s("."),da=m(),W=o("div"),_(ke.$$.fragment),pa=m(),Ze=o("p"),ga=s(`Upload the image processor file to the \u{1F917} Model Hub while synchronizing a local clone of the repo in
`),kr=o("code"),fa=s("repo_path_or_name"),ha=s("."),ua=m(),_(ae.$$.fragment),_a=m(),L=o("div"),_(We.$$.fragment),ba=m(),Le=o("p"),ya=s(`Register this class with a given auto class. This should only be used for custom image processors as the ones
in the library are already mapped with `),Zr=o("code"),va=s("AutoImageProcessor "),$a=s("."),wa=m(),_(ne.$$.fragment),Ia=m(),se=o("div"),_(qe.$$.fragment),xa=m(),G=o("p"),Ma=s("Save an image processor object to the directory "),Wr=o("code"),Pa=s("save_directory"),Ta=s(`, so that it can be re-loaded using the
`),Ge=o("a"),Ea=s("from_pretrained()"),ja=s(" class method."),za=m(),ie=o("div"),_(Se.$$.fragment),Ua=m(),Lr=o("p"),Ja=s("Serializes this instance to a Python dictionary."),Da=m(),me=o("div"),_(Ve.$$.fragment),Ca=m(),qr=o("p"),Na=s("Save this instance to a JSON file."),ka=m(),ce=o("div"),_(Be.$$.fragment),Za=m(),Sr=o("p"),Wa=s("Serializes this instance to a JSON string."),this.h()},l(r){const l=Wn('[data-svelte="svelte-1phssyn"]',document.head);f=a(l,"META",{name:!0,content:!0}),l.forEach(t),T=c(r),I=a(r,"H1",{class:!0});var Fe=n(I);h=a(Fe,"A",{id:!0,class:!0,href:!0});var Vr=n(h);E=a(Vr,"SPAN",{});var Br=n(E);b(d.$$.fragment,Br),Br.forEach(t),Vr.forEach(t),P=c(Fe),nr=a(Fe,"SPAN",{});var qa=n(nr);Et=i(qa,"Utilities for Image Processors"),qa.forEach(t),Fe.forEach(t),Fr=c(r),Re=a(r,"P",{});var Sa=n(Re);jt=i(Sa,`This page lists all the utility functions used by the image processors, mainly the functional
transformations used to process the images.`),Sa.forEach(t),Rr=c(r),Ae=a(r,"P",{});var Va=n(Ae);zt=i(Va,"Most of those are only useful if you are studying the code of the image processors in the library."),Va.forEach(t),Ar=c(r),q=a(r,"H2",{class:!0});var st=n(q);Q=a(st,"A",{id:!0,class:!0,href:!0});var Ba=n(Q);sr=a(Ba,"SPAN",{});var Fa=n(sr);b(he.$$.fragment,Fa),Fa.forEach(t),Ba.forEach(t),Ut=c(st),ir=a(st,"SPAN",{});var Ra=n(ir);Jt=i(Ra,"Image Transformations"),Ra.forEach(t),st.forEach(t),Xr=c(r),S=a(r,"DIV",{class:!0});var it=n(S);b(ue.$$.fragment,it),Dt=c(it),j=a(it,"P",{});var le=n(j);Ct=i(le,"Crops the "),mr=a(le,"CODE",{});var Aa=n(mr);Nt=i(Aa,"image"),Aa.forEach(t),kt=i(le," to the specified "),cr=a(le,"CODE",{});var Xa=n(cr);Zt=i(Xa,"size"),Xa.forEach(t),Wt=i(le,` using a center crop. Note that if the image is too small to be cropped to
the size given, it will be padded (so the returned result will always be of size `),lr=a(le,"CODE",{});var Ya=n(lr);Lt=i(Ya,"size"),Ya.forEach(t),qt=i(le,")."),le.forEach(t),it.forEach(t),Yr=c(r),z=a(r,"DIV",{class:!0});var He=n(z);b(_e.$$.fragment,He),St=c(He),dr=a(He,"P",{});var Oa=n(dr);Vt=i(Oa,"Converts bounding boxes from center format to corners format."),Oa.forEach(t),Bt=c(He),pr=a(He,"P",{});var Ga=n(pr);Ft=i(Ga,`center format: contains the coordinate for the center of the box and its width, height dimensions
(center_x, center_y, width, height)
corners format: contains the coodinates for the top-left and bottom-right corners of the box
(top_left_x, top_left_y, bottom_right_x, bottom_right_y)`),Ga.forEach(t),He.forEach(t),Or=c(r),U=a(r,"DIV",{class:!0});var Qe=n(U);b(be.$$.fragment,Qe),Rt=c(Qe),gr=a(Qe,"P",{});var Ha=n(gr);At=i(Ha,"Converts bounding boxes from corners format to center format."),Ha.forEach(t),Xt=c(Qe),fr=a(Qe,"P",{});var Qa=n(fr);Yt=i(Qa,`corners format: contains the coodinates for the top-left and bottom-right corners of the box
(top_left_x, top_left_y, bottom_right_x, bottom_right_y)
center format: contains the coordinate for the center of the box and its the width, height dimensions
(center_x, center_y, width, height)`),Qa.forEach(t),Qe.forEach(t),Gr=c(r),V=a(r,"DIV",{class:!0});var mt=n(V);b(ye.$$.fragment,mt),Ot=c(mt),hr=a(mt,"P",{});var Ka=n(hr);Gt=i(Ka,"Converts unique ID to RGB color."),Ka.forEach(t),mt.forEach(t),Hr=c(r),J=a(r,"DIV",{class:!0});var Ke=n(J);b(ve.$$.fragment,Ke),Ht=c(Ke),D=a(Ke,"P",{});var de=n(D);Qt=i(de,"Normalizes "),ur=a(de,"CODE",{});var en=n(ur);Kt=i(en,"image"),en.forEach(t),eo=i(de," using the mean and standard deviation specified by "),_r=a(de,"CODE",{});var rn=n(_r);ro=i(rn,"mean"),rn.forEach(t),to=i(de," and "),br=a(de,"CODE",{});var tn=n(br);oo=i(tn,"std"),tn.forEach(t),ao=i(de,"."),de.forEach(t),no=c(Ke),yr=a(Ke,"P",{});var on=n(yr);so=i(on,"image = (image - mean) / std"),on.forEach(t),Ke.forEach(t),Qr=c(r),B=a(r,"DIV",{class:!0});var ct=n(B);b($e.$$.fragment,ct),io=c(ct),C=a(ct,"P",{});var pe=n(C);mo=i(pe,"Pads the "),vr=a(pe,"CODE",{});var an=n(vr);co=i(an,"image"),an.forEach(t),lo=i(pe," with the specified (height, width) "),$r=a(pe,"CODE",{});var nn=n($r);po=i(nn,"padding"),nn.forEach(t),go=i(pe," and "),wr=a(pe,"CODE",{});var sn=n(wr);fo=i(sn,"mode"),sn.forEach(t),ho=i(pe,"."),pe.forEach(t),ct.forEach(t),Kr=c(r),F=a(r,"DIV",{class:!0});var lt=n(F);b(we.$$.fragment,lt),uo=c(lt),Ir=a(lt,"P",{});var mn=n(Ir);_o=i(mn,"Converts RGB color to unique ID."),mn.forEach(t),lt.forEach(t),et=c(r),R=a(r,"DIV",{class:!0});var dt=n(R);b(Ie.$$.fragment,dt),bo=c(dt),A=a(dt,"P",{});var er=n(A);yo=i(er,"Rescales "),xr=a(er,"CODE",{});var cn=n(xr);vo=i(cn,"image"),cn.forEach(t),$o=i(er," by "),Mr=a(er,"CODE",{});var ln=n(Mr);wo=i(ln,"scale"),ln.forEach(t),Io=i(er,"."),er.forEach(t),dt.forEach(t),rt=c(r),X=a(r,"DIV",{class:!0});var pt=n(X);b(xe.$$.fragment,pt),xo=c(pt),N=a(pt,"P",{});var ge=n(N);Mo=i(ge,"Resizes "),Pr=a(ge,"CODE",{});var dn=n(Pr);Po=i(dn,"image"),dn.forEach(t),To=i(ge," to "),Tr=a(ge,"CODE",{});var pn=n(Tr);Eo=i(pn,"(height, width)"),pn.forEach(t),jo=i(ge," specified by "),Er=a(ge,"CODE",{});var gn=n(Er);zo=i(gn,"size"),gn.forEach(t),Uo=i(ge," using the PIL library."),ge.forEach(t),pt.forEach(t),tt=c(r),Y=a(r,"DIV",{class:!0});var gt=n(Y);b(Me.$$.fragment,gt),Jo=c(gt),Pe=a(gt,"P",{});var ft=n(Pe);Do=i(ft,"Converts "),jr=a(ft,"CODE",{});var fn=n(jr);Co=i(fn,"image"),fn.forEach(t),No=i(ft,` to a PIL Image. Optionally rescales it and puts the channel dimension back as the last axis if
needed.`),ft.forEach(t),gt.forEach(t),ot=c(r),O=a(r,"H2",{class:!0});var ht=n(O);K=a(ht,"A",{id:!0,class:!0,href:!0});var hn=n(K);zr=a(hn,"SPAN",{});var un=n(zr);b(Te.$$.fragment,un),un.forEach(t),hn.forEach(t),ko=c(ht),Ur=a(ht,"SPAN",{});var _n=n(Ur);Zo=i(_n,"ImageProcessingMixin"),_n.forEach(t),ht.forEach(t),at=c(r),u=a(r,"DIV",{class:!0});var x=n(u);b(Ee.$$.fragment,x),Wo=c(x),Jr=a(x,"P",{});var bn=n(Jr);Lo=i(bn,`This is an image processor mixin used to provide saving/loading functionality for sequential and image feature
extractors.`),bn.forEach(t),qo=c(x),ee=a(x,"DIV",{class:!0});var ut=n(ee);b(je.$$.fragment,ut),So=c(ut),ze=a(ut,"P",{});var _t=n(ze);Vo=i(_t,"Instantiates a type of "),Xe=a(_t,"A",{href:!0});var yn=n(Xe);Bo=i(yn,"ImageProcessingMixin"),yn.forEach(t),Fo=i(_t," from a Python dictionary of parameters."),_t.forEach(t),ut.forEach(t),Ro=c(x),re=a(x,"DIV",{class:!0});var bt=n(re);b(Ue.$$.fragment,bt),Ao=c(bt),Je=a(bt,"P",{});var yt=n(Je);Xo=i(yt,"Instantiates a image processor of type "),Ye=a(yt,"A",{href:!0});var vn=n(Ye);Yo=i(vn,"ImageProcessingMixin"),vn.forEach(t),Oo=i(yt,` from the path to a JSON
file of parameters.`),yt.forEach(t),bt.forEach(t),Go=c(x),Z=a(x,"DIV",{class:!0});var rr=n(Z);b(De.$$.fragment,rr),Ho=c(rr),Ce=a(rr,"P",{});var vt=n(Ce);Qo=i(vt,"Instantiate a type of "),Oe=a(vt,"A",{href:!0});var $n=n(Oe);Ko=i($n,"ImageProcessingMixin"),$n.forEach(t),ea=i(vt," from an image processor."),vt.forEach(t),ra=c(rr),b(te.$$.fragment,rr),rr.forEach(t),ta=c(x),oe=a(x,"DIV",{class:!0});var $t=n(oe);b(Ne.$$.fragment,$t),oa=c($t),k=a($t,"P",{});var fe=n(k);aa=i(fe,"From a "),Dr=a(fe,"CODE",{});var wn=n(Dr);na=i(wn,"pretrained_model_name_or_path"),wn.forEach(t),sa=i(fe,`, resolve to a dictionary of parameters, to be used for instantiating a
image processor of type `),Cr=a(fe,"CODE",{});var In=n(Cr);ia=i(In,"~image_processor_utils.ImageProcessingMixin"),In.forEach(t),ma=i(fe," using "),Nr=a(fe,"CODE",{});var xn=n(Nr);ca=i(xn,"from_dict"),xn.forEach(t),la=i(fe,"."),fe.forEach(t),$t.forEach(t),da=c(x),W=a(x,"DIV",{class:!0});var tr=n(W);b(ke.$$.fragment,tr),pa=c(tr),Ze=a(tr,"P",{});var wt=n(Ze);ga=i(wt,`Upload the image processor file to the \u{1F917} Model Hub while synchronizing a local clone of the repo in
`),kr=a(wt,"CODE",{});var Mn=n(kr);fa=i(Mn,"repo_path_or_name"),Mn.forEach(t),ha=i(wt,"."),wt.forEach(t),ua=c(tr),b(ae.$$.fragment,tr),tr.forEach(t),_a=c(x),L=a(x,"DIV",{class:!0});var or=n(L);b(We.$$.fragment,or),ba=c(or),Le=a(or,"P",{});var It=n(Le);ya=i(It,`Register this class with a given auto class. This should only be used for custom image processors as the ones
in the library are already mapped with `),Zr=a(It,"CODE",{});var Pn=n(Zr);va=i(Pn,"AutoImageProcessor "),Pn.forEach(t),$a=i(It,"."),It.forEach(t),wa=c(or),b(ne.$$.fragment,or),or.forEach(t),Ia=c(x),se=a(x,"DIV",{class:!0});var xt=n(se);b(qe.$$.fragment,xt),xa=c(xt),G=a(xt,"P",{});var ar=n(G);Ma=i(ar,"Save an image processor object to the directory "),Wr=a(ar,"CODE",{});var Tn=n(Wr);Pa=i(Tn,"save_directory"),Tn.forEach(t),Ta=i(ar,`, so that it can be re-loaded using the
`),Ge=a(ar,"A",{href:!0});var En=n(Ge);Ea=i(En,"from_pretrained()"),En.forEach(t),ja=i(ar," class method."),ar.forEach(t),xt.forEach(t),za=c(x),ie=a(x,"DIV",{class:!0});var Mt=n(ie);b(Se.$$.fragment,Mt),Ua=c(Mt),Lr=a(Mt,"P",{});var jn=n(Lr);Ja=i(jn,"Serializes this instance to a Python dictionary."),jn.forEach(t),Mt.forEach(t),Da=c(x),me=a(x,"DIV",{class:!0});var Pt=n(me);b(Ve.$$.fragment,Pt),Ca=c(Pt),qr=a(Pt,"P",{});var zn=n(qr);Na=i(zn,"Save this instance to a JSON file."),zn.forEach(t),Pt.forEach(t),ka=c(x),ce=a(x,"DIV",{class:!0});var Tt=n(ce);b(Be.$$.fragment,Tt),Za=c(Tt),Sr=a(Tt,"P",{});var Un=n(Sr);Wa=i(Un,"Serializes this instance to a JSON string."),Un.forEach(t),Tt.forEach(t),x.forEach(t),this.h()},h(){p(f,"name","hf:doc:metadata"),p(f,"content",JSON.stringify(Rn)),p(h,"id","utilities-for-image-processors"),p(h,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),p(h,"href","#utilities-for-image-processors"),p(I,"class","relative group"),p(Q,"id","transformers.image_transforms.center_crop"),p(Q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),p(Q,"href","#transformers.image_transforms.center_crop"),p(q,"class","relative group"),p(S,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(U,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(V,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(J,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(B,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(F,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(R,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(X,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(Y,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(K,"id","transformers.ImageProcessingMixin"),p(K,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),p(K,"href","#transformers.ImageProcessingMixin"),p(O,"class","relative group"),p(Xe,"href","/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin"),p(ee,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(Ye,"href","/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin"),p(re,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(Oe,"href","/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin"),p(Z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(oe,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(W,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(L,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(Ge,"href","/docs/transformers/v4.30.0/en/internal/image_processing_utils#transformers.ImageProcessingMixin.from_pretrained"),p(se,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(ie,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(me,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(ce,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),p(u,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(r,l){e(document.head,f),g(r,T,l),g(r,I,l),e(I,h),e(h,E),y(d,E,null),e(I,P),e(I,nr),e(nr,Et),g(r,Fr,l),g(r,Re,l),e(Re,jt),g(r,Rr,l),g(r,Ae,l),e(Ae,zt),g(r,Ar,l),g(r,q,l),e(q,Q),e(Q,sr),y(he,sr,null),e(q,Ut),e(q,ir),e(ir,Jt),g(r,Xr,l),g(r,S,l),y(ue,S,null),e(S,Dt),e(S,j),e(j,Ct),e(j,mr),e(mr,Nt),e(j,kt),e(j,cr),e(cr,Zt),e(j,Wt),e(j,lr),e(lr,Lt),e(j,qt),g(r,Yr,l),g(r,z,l),y(_e,z,null),e(z,St),e(z,dr),e(dr,Vt),e(z,Bt),e(z,pr),e(pr,Ft),g(r,Or,l),g(r,U,l),y(be,U,null),e(U,Rt),e(U,gr),e(gr,At),e(U,Xt),e(U,fr),e(fr,Yt),g(r,Gr,l),g(r,V,l),y(ye,V,null),e(V,Ot),e(V,hr),e(hr,Gt),g(r,Hr,l),g(r,J,l),y(ve,J,null),e(J,Ht),e(J,D),e(D,Qt),e(D,ur),e(ur,Kt),e(D,eo),e(D,_r),e(_r,ro),e(D,to),e(D,br),e(br,oo),e(D,ao),e(J,no),e(J,yr),e(yr,so),g(r,Qr,l),g(r,B,l),y($e,B,null),e(B,io),e(B,C),e(C,mo),e(C,vr),e(vr,co),e(C,lo),e(C,$r),e($r,po),e(C,go),e(C,wr),e(wr,fo),e(C,ho),g(r,Kr,l),g(r,F,l),y(we,F,null),e(F,uo),e(F,Ir),e(Ir,_o),g(r,et,l),g(r,R,l),y(Ie,R,null),e(R,bo),e(R,A),e(A,yo),e(A,xr),e(xr,vo),e(A,$o),e(A,Mr),e(Mr,wo),e(A,Io),g(r,rt,l),g(r,X,l),y(xe,X,null),e(X,xo),e(X,N),e(N,Mo),e(N,Pr),e(Pr,Po),e(N,To),e(N,Tr),e(Tr,Eo),e(N,jo),e(N,Er),e(Er,zo),e(N,Uo),g(r,tt,l),g(r,Y,l),y(Me,Y,null),e(Y,Jo),e(Y,Pe),e(Pe,Do),e(Pe,jr),e(jr,Co),e(Pe,No),g(r,ot,l),g(r,O,l),e(O,K),e(K,zr),y(Te,zr,null),e(O,ko),e(O,Ur),e(Ur,Zo),g(r,at,l),g(r,u,l),y(Ee,u,null),e(u,Wo),e(u,Jr),e(Jr,Lo),e(u,qo),e(u,ee),y(je,ee,null),e(ee,So),e(ee,ze),e(ze,Vo),e(ze,Xe),e(Xe,Bo),e(ze,Fo),e(u,Ro),e(u,re),y(Ue,re,null),e(re,Ao),e(re,Je),e(Je,Xo),e(Je,Ye),e(Ye,Yo),e(Je,Oo),e(u,Go),e(u,Z),y(De,Z,null),e(Z,Ho),e(Z,Ce),e(Ce,Qo),e(Ce,Oe),e(Oe,Ko),e(Ce,ea),e(Z,ra),y(te,Z,null),e(u,ta),e(u,oe),y(Ne,oe,null),e(oe,oa),e(oe,k),e(k,aa),e(k,Dr),e(Dr,na),e(k,sa),e(k,Cr),e(Cr,ia),e(k,ma),e(k,Nr),e(Nr,ca),e(k,la),e(u,da),e(u,W),y(ke,W,null),e(W,pa),e(W,Ze),e(Ze,ga),e(Ze,kr),e(kr,fa),e(Ze,ha),e(W,ua),y(ae,W,null),e(u,_a),e(u,L),y(We,L,null),e(L,ba),e(L,Le),e(Le,ya),e(Le,Zr),e(Zr,va),e(Le,$a),e(L,wa),y(ne,L,null),e(u,Ia),e(u,se),y(qe,se,null),e(se,xa),e(se,G),e(G,Ma),e(G,Wr),e(Wr,Pa),e(G,Ta),e(G,Ge),e(Ge,Ea),e(G,ja),e(u,za),e(u,ie),y(Se,ie,null),e(ie,Ua),e(ie,Lr),e(Lr,Ja),e(u,Da),e(u,me),y(Ve,me,null),e(me,Ca),e(me,qr),e(qr,Na),e(u,ka),e(u,ce),y(Be,ce,null),e(ce,Za),e(ce,Sr),e(Sr,Wa),nt=!0},p(r,[l]){const Fe={};l&2&&(Fe.$$scope={dirty:l,ctx:r}),te.$set(Fe);const Vr={};l&2&&(Vr.$$scope={dirty:l,ctx:r}),ae.$set(Vr);const Br={};l&2&&(Br.$$scope={dirty:l,ctx:r}),ne.$set(Br)},i(r){nt||(v(d.$$.fragment,r),v(he.$$.fragment,r),v(ue.$$.fragment,r),v(_e.$$.fragment,r),v(be.$$.fragment,r),v(ye.$$.fragment,r),v(ve.$$.fragment,r),v($e.$$.fragment,r),v(we.$$.fragment,r),v(Ie.$$.fragment,r),v(xe.$$.fragment,r),v(Me.$$.fragment,r),v(Te.$$.fragment,r),v(Ee.$$.fragment,r),v(je.$$.fragment,r),v(Ue.$$.fragment,r),v(De.$$.fragment,r),v(te.$$.fragment,r),v(Ne.$$.fragment,r),v(ke.$$.fragment,r),v(ae.$$.fragment,r),v(We.$$.fragment,r),v(ne.$$.fragment,r),v(qe.$$.fragment,r),v(Se.$$.fragment,r),v(Ve.$$.fragment,r),v(Be.$$.fragment,r),nt=!0)},o(r){$(d.$$.fragment,r),$(he.$$.fragment,r),$(ue.$$.fragment,r),$(_e.$$.fragment,r),$(be.$$.fragment,r),$(ye.$$.fragment,r),$(ve.$$.fragment,r),$($e.$$.fragment,r),$(we.$$.fragment,r),$(Ie.$$.fragment,r),$(xe.$$.fragment,r),$(Me.$$.fragment,r),$(Te.$$.fragment,r),$(Ee.$$.fragment,r),$(je.$$.fragment,r),$(Ue.$$.fragment,r),$(De.$$.fragment,r),$(te.$$.fragment,r),$(Ne.$$.fragment,r),$(ke.$$.fragment,r),$(ae.$$.fragment,r),$(We.$$.fragment,r),$(ne.$$.fragment,r),$(qe.$$.fragment,r),$(Se.$$.fragment,r),$(Ve.$$.fragment,r),$(Be.$$.fragment,r),nt=!1},d(r){t(f),r&&t(T),r&&t(I),w(d),r&&t(Fr),r&&t(Re),r&&t(Rr),r&&t(Ae),r&&t(Ar),r&&t(q),w(he),r&&t(Xr),r&&t(S),w(ue),r&&t(Yr),r&&t(z),w(_e),r&&t(Or),r&&t(U),w(be),r&&t(Gr),r&&t(V),w(ye),r&&t(Hr),r&&t(J),w(ve),r&&t(Qr),r&&t(B),w($e),r&&t(Kr),r&&t(F),w(we),r&&t(et),r&&t(R),w(Ie),r&&t(rt),r&&t(X),w(xe),r&&t(tt),r&&t(Y),w(Me),r&&t(ot),r&&t(O),w(Te),r&&t(at),r&&t(u),w(Ee),w(je),w(Ue),w(De),w(te),w(Ne),w(ke),w(ae),w(We),w(ne),w(qe),w(Se),w(Ve),w(Be)}}}const Rn={local:"utilities-for-image-processors",sections:[{local:"transformers.image_transforms.center_crop",title:"Image Transformations"},{local:"transformers.ImageProcessingMixin",title:"ImageProcessingMixin"}],title:"Utilities for Image Processors"};function An(H){return Ln(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Kn extends Nn{constructor(f){super();kn(this,f,An,Fn,Zn,{})}}export{Kn as default,Rn as metadata};
