この記事では、Pythonを使って低画質な画像を高画質に変換するプログラムを初心者向けに解説します。手順は簡単で、Pythonのライブラリをインストールし、指定されたコードを実行するだけです。以下の手順に従って進めてください。
※注意してほしいのはこのプログラムは画像を拡大し、エッジを強調することで見かけ上の品質を向上させます。ただし、実際には失われた情報を完全に復元することはできません。より高度なアプローチには、機械学習を用いた超解像技術などがあります。
1. 専用フォルダの作成
まず、作業用のフォルダを作成しましょう。このフォルダには画像ファイルとPythonプログラムを保存します。フォルダ名は「photo」など、わかりやすい名前にしてください。
2. 必要なライブラリのインストール
次に、画像処理に必要なOpenCVライブラリをインストールします。以下のコマンドを実行してください。
pip install opencv-python
3. プログラムコードの準備
以下のコードをコピーして、「photo」フォルダ内に「photo.py」という名前で保存します。
import cv2
import numpy as np
import os
def upscale_image(image_path, scale_factor=2):
# 画像を読み込む
img = cv2.imread(image_path)
if img is None:
print(f"エラー: 画像 '{image_path}' を読み込めませんでした。")
return None
# 画像のサイズを取得
height, width = img.shape[:2]
# 新しいサイズを計算
new_height = int(height * scale_factor)
new_width = int(width * scale_factor)
# 画像をリサイズ
upscaled = cv2.resize(img, (new_width, new_height), interpolation=cv2.INTER_CUBIC)
# エッジを強調
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
sharpened = cv2.filter2D(upscaled, -1, kernel)
return sharpened
def main():
input_image = "low_quality_image.jpg"
output_image = "high_quality_image.jpg"
# 入力ファイルの存在確認
if not os.path.exists(input_image):
print(f"エラー: 入力ファイル '{input_image}' が見つかりません。")
return
# 画像の処理
result = upscale_image(input_image, scale_factor=2)
if result is None:
print("画像の処理に失敗しました。")
return
# 出力ディレクトリの確認と作成
output_dir = os.path.dirname(output_image)
if output_dir and not os.path.exists(output_dir):
os.makedirs(output_dir)
# 画像の保存
try:
cv2.imwrite(output_image, result)
print(f"画像を '{output_image}' に保存しました。")
except Exception as e:
print(f"画像の保存中にエラーが発生しました: {e}")
if __name__ == "__main__":
main()
4. 画像の準備
次に、「photo」フォルダ内に、低画質な画像を「low_quality_image.jpg」という名前で保存します。画像形式はjpg形式であることを確認してください。
5. プログラムの実行
以下のコマンドを実行してプログラムを起動します。
python photo.py
プログラムが正常に実行されると、「photo」フォルダ内に「high_quality_image.jpg」という名前で高画質に変換された画像が保存されます。
まとめ
以上が、Pythonを使って低画質な画像を高画質に変換する手順です。簡単な手順で画像の品質を向上させることができますので、ぜひ試してみてください。