JPEG in PyTorch

Buy Me a Coffee

*Memos:

JPEG() can randomly apply JPEG compression to an image as shown below:

*Memos:

  • The 1st argument for initialization is quality(Required-Type:int): *Memos:
    • It’s the range of the quality [min, max] so it must be min <= max.
    • It must be 0 <= x <= 100.
    • A tuple/list must be the 1D with 2 elements.
    • A single value means [quality, quality].
  • There is the 1st argument(Required-Type:PIL Image or tensor(int(uint8))). *A tensor must be 3D.
  • v2 is recommended to use according to V1 or V2? Which one should I use?.
<span>from</span> <span>torchvision.datasets</span> <span>import</span> <span>OxfordIIITPet</span>
<span>from</span> <span>torchvision.transforms.v2</span> <span>import</span> <span>JPEG</span>
<span>jpeg</span> <span>=</span> <span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>100</span><span>)</span>
<span>jpeg</span>
<span># JPEG(quality=[100, 100]) </span>
<span>jpeg</span><span>.</span><span>quality</span>
<span># [100, 100] </span>
<span>origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>None</span>
<span>)</span>
<span>q100origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `q` is quality </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>100</span><span>)</span>
<span># transform=JPEG(quality=[100, 100]) </span><span>)</span>
<span>q1_100_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>100</span><span>])</span>
<span>)</span>
<span>q1_50_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>50</span><span>])</span>
<span>)</span>
<span>q50_100_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>[</span><span>50</span><span>,</span> <span>100</span><span>])</span>
<span>)</span>
<span>q50_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>50</span><span>)</span>
<span>)</span>
<span>q10_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>10</span><span>)</span>
<span>)</span>
<span>q5_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>5</span><span>)</span>
<span>)</span>
<span>q1_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
<span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
<span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>1</span><span>)</span>
<span>)</span>
<span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span>
<span>def</span> <span>show_images1</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>):</span>
<span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>5</span><span>])</span>
<span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span>
<span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span>
<span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span>
<span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>im</span><span>)</span>
<span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
<span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
<span>plt</span><span>.</span><span>tight_layout</span><span>()</span>
<span>plt</span><span>.</span><span>show</span><span>()</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span>
<span>print</span><span>()</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q100origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q100origin_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q1_100_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_100_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q1_50_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_50_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q50_100_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q50_100_data</span><span>"</span><span>)</span>
<span>print</span><span>()</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q100origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q100origin_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q50_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q50_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q10_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q10_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q5_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q5_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_data</span><span>"</span><span>)</span>
<span># ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ </span><span>def</span> <span>show_images2</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>,</span> <span>q</span><span>=</span><span>100</span><span>):</span>
<span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>5</span><span>])</span>
<span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span>
<span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span>
<span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span>
<span>jpeg</span> <span>=</span> <span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>q</span><span>)</span>
<span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>jpeg</span><span>(</span><span>im</span><span>))</span>
<span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
<span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
<span>plt</span><span>.</span><span>tight_layout</span><span>()</span>
<span>plt</span><span>.</span><span>show</span><span>()</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span>
<span>print</span><span>()</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q100origin_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>100</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_100_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>100</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_50_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>50</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q50_100_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>[</span><span>50</span><span>,</span> <span>100</span><span>])</span>
<span>print</span><span>()</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q100origin_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>100</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q50_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>50</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q10_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>10</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q5_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>5</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>1</span><span>)</span>
<span>from</span> <span>torchvision.datasets</span> <span>import</span> <span>OxfordIIITPet</span>
<span>from</span> <span>torchvision.transforms.v2</span> <span>import</span> <span>JPEG</span>

<span>jpeg</span> <span>=</span> <span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>100</span><span>)</span>

<span>jpeg</span>
<span># JPEG(quality=[100, 100]) </span>
<span>jpeg</span><span>.</span><span>quality</span>
<span># [100, 100] </span>
<span>origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>None</span>
<span>)</span>

<span>q100origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `q` is quality </span>    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>100</span><span>)</span>
    <span># transform=JPEG(quality=[100, 100]) </span><span>)</span>

<span>q1_100_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>100</span><span>])</span>
<span>)</span>

<span>q1_50_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>50</span><span>])</span>
<span>)</span>

<span>q50_100_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>[</span><span>50</span><span>,</span> <span>100</span><span>])</span>
<span>)</span>

<span>q50_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>50</span><span>)</span>
<span>)</span>

<span>q10_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>10</span><span>)</span>
<span>)</span>

<span>q5_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>5</span><span>)</span>
<span>)</span>

<span>q1_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span>
    <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span>
    <span>transform</span><span>=</span><span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>1</span><span>)</span>
<span>)</span>

<span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span>

<span>def</span> <span>show_images1</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>):</span>
    <span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>5</span><span>])</span>
    <span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span>
    <span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span>
        <span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span>
        <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>im</span><span>)</span>
        <span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
        <span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
    <span>plt</span><span>.</span><span>tight_layout</span><span>()</span>
    <span>plt</span><span>.</span><span>show</span><span>()</span>

<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span>
<span>print</span><span>()</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q100origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q100origin_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q1_100_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_100_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q1_50_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_50_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q50_100_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q50_100_data</span><span>"</span><span>)</span>
<span>print</span><span>()</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q100origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q100origin_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q50_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q50_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q10_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q10_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q5_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q5_data</span><span>"</span><span>)</span>
<span>show_images1</span><span>(</span><span>data</span><span>=</span><span>q1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_data</span><span>"</span><span>)</span>

<span># ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ </span><span>def</span> <span>show_images2</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>,</span> <span>q</span><span>=</span><span>100</span><span>):</span>
    <span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>5</span><span>])</span>
    <span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span>
    <span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span>
        <span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span>
        <span>jpeg</span> <span>=</span> <span>JPEG</span><span>(</span><span>quality</span><span>=</span><span>q</span><span>)</span>
        <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>jpeg</span><span>(</span><span>im</span><span>))</span>
        <span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
        <span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span>
    <span>plt</span><span>.</span><span>tight_layout</span><span>()</span>
    <span>plt</span><span>.</span><span>show</span><span>()</span>

<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span>
<span>print</span><span>()</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q100origin_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>100</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_100_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>100</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_50_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>50</span><span>])</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q50_100_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>[</span><span>50</span><span>,</span> <span>100</span><span>])</span>
<span>print</span><span>()</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q100origin_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>100</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q50_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>50</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q10_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>10</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q5_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>5</span><span>)</span>
<span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>q1_data</span><span>"</span><span>,</span> <span>q</span><span>=</span><span>1</span><span>)</span>
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import JPEG jpeg = JPEG(quality=100) jpeg # JPEG(quality=[100, 100]) jpeg.quality # [100, 100] origin_data = OxfordIIITPet( root="data", transform=None ) q100origin_data = OxfordIIITPet( # `q` is quality root="data", transform=JPEG(quality=100) # transform=JPEG(quality=[100, 100]) ) q1_100_data = OxfordIIITPet( root="data", transform=JPEG(quality=[1, 100]) ) q1_50_data = OxfordIIITPet( root="data", transform=JPEG(quality=[1, 50]) ) q50_100_data = OxfordIIITPet( root="data", transform=JPEG(quality=[50, 100]) ) q50_data = OxfordIIITPet( root="data", transform=JPEG(quality=50) ) q10_data = OxfordIIITPet( root="data", transform=JPEG(quality=10) ) q5_data = OxfordIIITPet( root="data", transform=JPEG(quality=5) ) q1_data = OxfordIIITPet( root="data", transform=JPEG(quality=1) ) import matplotlib.pyplot as plt def show_images1(data, main_title=None): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) plt.imshow(X=im) plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images1(data=origin_data, main_title="origin_data") print() show_images1(data=q100origin_data, main_title="q100origin_data") show_images1(data=q1_100_data, main_title="q1_100_data") show_images1(data=q1_50_data, main_title="q1_50_data") show_images1(data=q50_100_data, main_title="q50_100_data") print() show_images1(data=q100origin_data, main_title="q100origin_data") show_images1(data=q50_data, main_title="q50_data") show_images1(data=q10_data, main_title="q10_data") show_images1(data=q5_data, main_title="q5_data") show_images1(data=q1_data, main_title="q1_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, q=100): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) jpeg = JPEG(quality=q) plt.imshow(X=jpeg(im)) plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images2(data=origin_data, main_title="origin_data") print() show_images2(data=origin_data, main_title="q100origin_data", q=100) show_images2(data=origin_data, main_title="q1_100_data", q=[1, 100]) show_images2(data=origin_data, main_title="q1_50_data", q=[1, 50]) show_images2(data=origin_data, main_title="q50_100_data", q=[50, 100]) print() show_images2(data=origin_data, main_title="q100origin_data", q=100) show_images2(data=origin_data, main_title="q50_data", q=50) show_images2(data=origin_data, main_title="q10_data", q=10) show_images2(data=origin_data, main_title="q5_data", q=5) show_images2(data=origin_data, main_title="q1_data", q=1)

Enter fullscreen mode Exit fullscreen mode



原文链接:JPEG in PyTorch

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
Nothing is more terrible than ignorance in action.
最可怕的事莫过于无知而行动
评论 抢沙发

请登录后发表评论

    暂无评论内容