ChatGPTへ一行質問でC#言語で記述したOpenCV対応プログラムの開発です。
質問で生成されたソースリスト
すると、プロジェクトの作成法や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); } } }
変更前のソースコードをコメントとして残しました。