1

C# アプリケーションを構築しています。画像比較に openCV を使用する VC++ DLL をインポートしました。openCV でアクセスする必要がある関数のプロトタイプは
bool DGTestAutomation_ImgCmp(IplImage* img1, IplImage* img2, int normalization_val, int tolerance); です。

C# のイメージはビットマップとして保存されます。これらのビットマップを DLL に渡すにはどうすればよいですか? 私が使用している現在のコードは

public class DLL
{
    [DllImport("DGTestAutomation_DLL.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    public static extern bool DGTestAutomation_ImgCmp(
         [MarshalAs(UnmanagedType.IPLImage)]Bitmap bmp1,
         [MarshalAs(UnmanagedType.IPLImage)]Bitmap bmp2, 
         int normalization_val, int tolerance);
}

DLL の呼び出し

bool check = DLL.DGTestAutomation_ImgCmp(bmp1, bmp2, 0, 9);

エラー

「System.Runtime.InteropServices.UnmanagedType」

私はDLLのことを学び始めたばかりです。助けていただければ幸いです。ありがとうございました

4

0 に答える 0