2011-03-24 52 views
2

任何人都知道c#的图像处理库,它有一个像matlab中的mat2gray函数一样的函数?c#mat2gray(matlab)函数

谢谢。

+0

我猜猜它不存在,但它可能有点可行,以类似循环的方式进行编码 – svrist 2011-03-24 11:13:32

回答

3

喜欢的东西:

public Bitmap mat2gray(int[,] mat,double? amin = null, double? amax = null){ 

    var sizex = mat.GetLength(0); 
    var sizey = mat.GetLength(1); 
    if (!amin.HasValue) 
    amin = 0; 
    if (!amax.HasValue) 
    amax = 1; 
    var ret = new Bitmap(sizex,sizey); 
    for (int i=0; i< sizex;i++){ 
    for (int j=0; j< sizey;j++){ 
     int A = (int)((Math.Round(mat[i,j]-amin.Value)*(255.0/amax.Value))%amax.Value); 
     ret.SetPixel(i,j,Color.FromArgb(A,A,A)); 
    } 
} 

但阿明/ AMAX的东西需要一些微调

0

另一种可能性,如果你有机会到MATLAB生成器NE工具箱,是使用deploytool为mat2gray(或您希望从C#调用的任何其他MATLAB功能)创建.NET接口。然后,您可以将参数作为MWArray对象包装起来,为MATLAB函数调用.NET包装,并打开返回的MWArray []结果。

0

您可以使用type关键字(除了内置函数)打印MATLAB函数的确切实现。

type mat2gray