ChatGPTでプログラム生成①

ChatGPTへ一行質問でC#言語で記述したOpenCV対応プログラムの開発です。

ChatGPTへ一行質問

ChatGPT 3.5 へ以下のような質問を行います。

C#でOpenCVsharpを利用し、簡単なプログラムを作りたい。

質問で生成されたソースリスト

すると、プロジェクトの作成法やOpenCVsharpの導入法の説明に続き、以下のようなソースコードが示されます。

using System;
using OpenCvSharp;

class Program
{
    static void Main(string[] args)
    {
        // 画像ファイルのパスを指定して画像を読み込む
        using (Mat img = Cv2.ImRead("sample.jpg", ImreadModes.Color))
        {
            if (img.Empty())
            {
                Console.WriteLine("画像を読み込めませんでした。");
                return;
            }

            // 画像をウィンドウで表示する
            Cv2.NamedWindow("Image", WindowMode.AutoSize);
            Cv2.ImShow("Image", img);

            // 何かキーが押されるまで待機する
            Cv2.WaitKey(0);
        }
    }
}

プロジェクトの生成方法はChatGPTの回答を参照してください。また、NuGetでOpenCVSharpを導入する方法も同様です。

このソースコードでは、WindowMode.AutoSizeへエラーが表示されます。ChatGPTの知識が古いのか、あるいは間違いなのか分かりません。Visual Studio で、NamedWindowの部分へカーソルを移動すると、WindowModeはWindowFlagsと指定するべきであることが分かります。
また、読み込み対象画像が"sample.jpg"となっていますので、自身で格納した場所とファイル名に書き換えます。

修正したソースリスト

以降に、2箇所だけ変更したソースリストを示します。

using System;
using OpenCvSharp;

class Program
{
    static void Main(string[] args)
    {
        // 画像ファイルのパスを指定して画像を読み込む
        ////using (Mat img = Cv2.ImRead("sample.jpg", ImreadModes.Color))
        using (Mat img = Cv2.ImRead("C:\\temp\\Lenna.jpg", ImreadModes.Color))
        {
            if (img.Empty())
            {
                Console.WriteLine("画像を読み込めませんでした。");
                return;
            }

            // 画像をウィンドウで表示する
            ////Cv2.NamedWindow("Image", WindowMode.AutoSize);
            Cv2.NamedWindow("Image", WindowFlags.AutoSize);
            Cv2.ImShow("Image", img);

            // 何かキーが押されるまで待機する
            Cv2.WaitKey(0);
        }
    }
}

変更前のソースコードをコメントとして残しました。

ビルド&実行

このプログラムをビルド&実行した様子を示します。

本の少し変更するだけで、C#からOpenCVを利用する簡単なプログラムができあがりました。

ChatGPT 3.5を利用しました。