実はあまり知られていませんが、 Code Interpreter を使用することで、多種多様な画像の編集ができます。

本記事では、これらの画像加工方法について、プロンプトと一緒に15個の手法をまとめていきます。

Code Interpreter の可能性はまだまだ知れ渡っていません。

今回の記事の知見をぜひGPTs制作に活かしていただければと思います。

それでは、早速みていきましょう!


1. 画像を分割する

画像を分割することができます。

この画像を横に二つ分割してください。

縦に二つ、横に二つ、縦横で4つなど、いろんなバリエーションで可能です。

実際に分割された左画像:

2. 画像を結合する

分割が可能なら、当然、結合も可能です:

これらの画像を縦に結合してください

3. GIF 画像を作る

画像を複数渡すことで、それらをGIFにすることができます:

この二つの画像をGIF化してください。秒数は2秒。

今回渡した画像は、アスペクト比があっていなかったため、2枚目がおかしくなってしまっています:

これを調整することも簡単です:

1枚目の画像は、正方形で中心部分を最大範囲で切り抜いてからGIFにしてください。

実際に修正した画像がこちら:


4. 画像を動画にする

GIF にすることが可能なら、動画もできちゃいます:

これら2枚の画像を1枚1秒で、MP4動画にしてください。

画像のサイズがあっていないなどのエラーが発生していますが、最終的には成功しています。

Code Interpreter はこのようにエラー時に自動的に自分で軌道修正することができる点が非常に優れています。

5. 拡張子を変換する

拡張子を変換します。私は webp を png にすることなどが多いです:

この画像を、png にしてください

対応している変換可能な拡張子一覧はこちらです:

  • JPEG (.jpg, .jpeg)

  • PNG (.png)

  • GIF (.gif)

  • TIFF (.tiff, .tif)

  • BMP (.bmp)

  • ICO (.ico)

  • PCX (.pcx)

  • Portable Network Graphics (.png)

  • Portable Pixmap (.ppm)

  • Portable Bitmap (.pbm)

  • Portable Graymap (.pgm)

  • PDF (.pdf)

6. モザイク風画像にする

特定の画像をモザイク風にすることができます。

この画像を、モザイク風画像にしてください。

ダウンロードした画像がこちら:

7. 顔領域を特定する

OpenCV という画像処理専門のライブラリを活用することで、顔領域を検知できます:

機械学習アルゴリズムを使って顔領域を特定してください。

この例では、3箇所で誤って検知されてしまっています。複雑な背景の場合はこのようなことが起こりえます。

フィードバックしてみましょう:

いくつか顔ではないものが含まれています。修正してください。

フィードバックをかけることで、2個に減りました。

実際のコードを見てみます:

    eyes = face_cascade.detectMultiScale(face_roi, scaleFactor=1.1, minNeighbors=5, minSize=(5, 5), flags=cv2.CASCADE_SCALE_IMAGE)
    if len(eyes) >= 1: # If eyes are detected within the ROI, we consider it a valid face
        cv2.rectangle(image_rgb, (x, y), (x+w, y+h), (0, 255, 0), 2)

目の数が1以上存在する場合のみ顔と判定するようにコードが変更されていました。

これを元々入れることで、精度が高くなります。

Code Interpreter の有効な使い方として、このようにフィードバックをなん度もかけた後で、最終的にいい結果が得られた時に、その際のコードを初めから GPT が記述できるように誘導することが肝心です。

8. 日本語を文字入れする

フォントを渡すことで、画像への日本語の文字入れが可能です。

渡したフォントを使って、画像に対して、文字入れをしてください。 入れる文字:「アンキパン」 フォントサイズ:120px 文字色:赤に黒の枠付き

このように、フォントサイズ、文字色など、いろんな項目が設定できます。

9. 画像のコントラストや明るさを調整する

画像のコントラストや明るさを調整して、視覚的に魅力的なものにすることができます:

この画像にもっと深みを足したいです。全体的にいい感じに暗くしてください。

10. 画像のノイズを除去する

ガウスノイズや塩胡椒ノイズなどの一般的なノイズを除去することができます。

この画像のノイズをメディアンフィルタで除去してください。

他にも以下のようなフィルターが使えます:

  1. ガウシアンブラー (Gaussian Blur): ガウシアンの重みを使用してピクセルを平均化し、画像を滑らかにする。ガウシアンノイズを減らすのに効果的です。

  2. メディアンフィルタ (Median Filter): 各ピクセルをその近傍のピクセルの中央値で置き換えます。エッジを保持しながらソルトアンドペッパーノイズを除去するのに有効です。

  3. バイラテラルフィルタ (Bilateral Filter): 空間的な近さと放射状の類似性(同じ強度や色)に基づいてピクセルを平均化し、エッジを鋭くしながらノイズを減らします。

  4. ボックスフィルタ (Box Filter): カーネル(または「ボックス」)の下のピクセルを平均化して画像をぼかします。高周波ノイズを減少させるシンプルで速いフィルターです。

  5. ソーベルフィルタ (Sobel Filter): エッジ検出に主に使用されます。ソーベルフィルタは各ピクセルでの画像の強度の勾配を計算するのに良い方法で、エッジを際立たせるのに適しています。

  6. ラプラシアンフィルタ (Laplacian Filter): 画像のラプラシアンを計算し、エッジを強調します。

色々と遊んでみてください。

11. 特定の色相を強調する

カラー画像をグレースケールに変換する、または特定の色相を強調・変更するなど、任意の色調に変更することができます。

この画像において、緑色の位相を強調してください

上記のダウンロード結果がこちらです:

12. 今日の日付を入れる

ChatGPTは今日の日付を理解しているため、今日の日付を画像に入れることが可能です:

pythonで画像の右下に今日の日付を入れてください


python でと Code Interpreter を指定しているのは、指定なしだとDALL·E で文字入れしようとするためです。

出力された画像がこちら:

見にくいですが、右下に日付が入っています。

13. 画像を二値化する

二値化は、情報量を極限まで削減して01の白黒画像にすることです:

大津の方法で二値化してください。

二値化された画像:

今回、単に「二値化してください」ではなく、「大津の方法で二値化してください」と依頼しています。

ChatGPTは基本的に楽をしようとするため、
より高度な方法を使って欲しい時は明示的に指示する必要があります。

高度な方法を知る一番いい方法は、それをChatGPTに尋ねることです。

例:

画像を二値化するための方法を高度なレベル順に教えてください。

14. 画像を合成する

画像を他の画像に埋め込んだりすることができます:

一つ目の画像の右上に、二つ目の画像を128*128ピクセルで合成してください

作成された画像(右上にアイコンが合成されています):

15. 水平/垂直方向に反転する

画像を水平または垂直方向に反転させることができます:

この画像を左右反転してください。表示して

続いて、この二つの画像をGIFにするといったフィードバックも可能です:

生成されたGIFがこちら:


いかがだったでしょうか?

Code Interpreter の魅力が伝わっていれば幸いです。

他にも Code Interpreter はまだまだいろんな可能性に満ち溢れているため、
これからも注目して研究していきます。