天天看點

asp.net調用opencv類庫,實作圖像處理顯示

asp.net調用opencv類庫,實作圖像處理顯示

  ​      原理上來說,通過dll的調用,無論是asp.net還是winform都可以調用opencv及其類庫。但是在實作的過程還是有許多細節是經過摸索和總結才得到結果的。作為界面顯示的方法,asp.net的網頁界面和winform的傳統界面應該說是各有所長,應當靈活運用。這裡是我如何采用asp.net調用opencv類庫,實作圖像處理顯示的小結。

        一、主要過程

        我這裡闡述的是最友善、最容易操作的過程,但不一定是最科學的過程

        1)将以GOIMAGE.DLL為主體的,和其支援庫,全部拷貝到system32檔案夾下

asp.net調用opencv類庫,實作圖像處理顯示
asp.net調用opencv類庫,實作圖像處理顯示

         在代碼中顯示引用庫檔案

       const string dllpath = "GOImage.dll";

    [DllImport(dllpath,

    EntryPoint = "getgray",

    CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]

    public static extern int getgray(string ImagePath, string ImagePath_Res, ref int errcode);

    EntryPoint = "getgreen",

    CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]

    public static extern int getgreen(string ImagePath, string ImagePath_Res, ref int errcode);

     2)編寫具體的引用代碼

        //網頁調用opencv類庫,實作圖像處理

// jsxyhelu 2015年3月31日

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Runtime.InteropServices;

public partial class _Default : System.Web.UI.Page

{

    [DllImport("GOImage.dll",

    EntryPoint = "getgreen",

    //結果是成功的。

    protected void Page_Load(object sender, EventArgs e)

    {

    }

    protected void Button2_Click(object sender, EventArgs e)

        //傳回值

        int iret = 0;

        int ierror = 0;

        string strresult = "錯誤";

        //圖檔輸出位置

        string strOutput = Server.MapPath(@"~/imgs/result.jpg");

        //獲得輸入圖檔位址

        string strInput = TextBox1.Text.ToString();

        //進行處理

        iret = getgreen(strInput, strOutput, ref ierror);

        //輸出結果

        Image1.ImageUrl = strOutput;

        if (0==iret)

        {

            strresult = "正常";

        }

        else if (1==iret)

            strresult = "幹旱";

        else

            strresult = "蟲蛀";

        tbresult.Text = "目前的圖像類型為" + strresult;

}

        二、注意事項

       在調用的時候,一定要把所有的相關的dll全部拷貝過去,否則會報看不懂的錯誤。

目前方向:圖像拼接融合、圖像識别

聯系方式:[email protected]

繼續閱讀