変換

Pythonで学ぶ画像処理

Rebeca Gonzalez

Data Engineer

なぜ画像を変換するのか

  • 画像分類の機械学習モデルの前処理
  • 最適化と圧縮
  • 比率を保って保存

猫の画像が処理され縮小される様子

Pythonで学ぶ画像処理

回転

2匹の犬が遊んで歩く

2匹の犬の写真(時計回りに90度回転)

Pythonで学ぶ画像処理

回転

2匹の犬が遊んで歩く

2匹の犬(反時計回りに90度回転)

Pythonで学ぶ画像処理

時計回りの回転

from skimage.transform import rotate

# 画像を時計回りに90度回転 image_rotated = rotate(image, -90)
show_image(image, 'Original') show_image(image_rotated, 'Rotated 90 degrees clockwise')

元の犬の写真と時計回りに回転した写真

Pythonで学ぶ画像処理

反時計回りの回転

from skimage.transform import rotate

# 画像を反時計回りに90度回転 image_rotated = rotate(image, 90)
show_image(image, 'Original') show_image(image_rotated, 'Rotated 90 degrees anticlockwise')

元の犬の写真と反時計回りに90度回転した写真

Pythonで学ぶ画像処理

リスケーリング

元の2匹の犬(3000ピクセル)と縮小後(800ピクセル)

Pythonで学ぶ画像処理

リスケーリング

ダウングレード
from skimage.transform import rescale

# 画像を4分の1に縮小 image_rescaled = rescale(image, 1/4, anti_aliasing=True, multichannel=True)
show_image(image, 'Original image') show_image(image_rescaled, 'Rescaled image')
Pythonで学ぶ画像処理

リスケーリング

元の2匹の犬(3000ピクセル)と縮小後(800ピクセル)

Pythonで学ぶ画像処理

デジタル画像のエイリアシング

エイリアシングなしの文字Aと、エイリアシングありの文字A

Pythonで学ぶ画像処理

デジタル画像のエイリアシング

エイリアシングありの縮小犬画像と、エイリアシングなしの縮小犬画像

Pythonで学ぶ画像処理

リサイズ

元の画像(3000ピクセル)とリサイズ後(800ピクセル)

Pythonで学ぶ画像処理

リサイズ

from skimage.transform import resize

# リサイズする高さと幅 height = 400 width = 500
# 画像をリサイズ image_resized = resize(image, (height, width), anti_aliasing=True)
# 元画像と結果を表示 show_image(image, 'Original image') show_image(image_resized, 'Resized image')
Pythonで学ぶ画像処理

リサイズ

元の2匹の犬(3000ピクセル)と、比率が崩れたリサイズ画像

Pythonで学ぶ画像処理

比率を保ってリサイズ

from skimage.transform import resize

# 縦横を元の4分の1に設定 height = image.shape[0] / 4 width = image.shape[1] / 4
# 画像をリサイズ image_resized = resize(image, (height, width), anti_aliasing=True)
show_image(image_resized, 'Resized image')
Pythonで学ぶ画像処理

比率を保ってリサイズ

元の2匹の犬(3000ピクセル)と、比率を保って800ピクセルにリサイズした画像

Pythonで学ぶ画像処理

Passons à la pratique !

Pythonで学ぶ画像処理

Preparing Video For Download...