天天看点

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]

继续阅读