从文件路径加载多个图像

时间:2014-08-11 11:00:00

标签: c# image bitmap openfiledialog

BackGround:我有一个(winform)代码,它可以通过Openfile对话框从特定的文件路径加载图像,然后位图进一步提取位图的最亮像素,并适应沿x像素的亮度变化,然后产生并拟合为高斯分布,(图片取自高斯激光束。)

问题:现在我需要做的是在20张单独的图片上做同样的事情。但是,我发现这在c#中非常难以做到,因此需要一些帮助。

忽略提取亮度像素并拟合高斯,我想先做的是在进一步图像处理之前加载图像。

我尝试创建一个名为Myclass的新类,它接受一个参数integer i,它将根据我分配给它的整数打开文件。因为我在文件路径@" C:\ Users \ Desktop \ A中得到了0.bmp,1.bmp,2.bmp,...等。 现在,对于myListOfObjects中的每个对象,我希望它们加载不同的位图图片,以便将它保存在每个对象中。

e.g。 myListOfObjects [0]有位图0.bmp myListOfObjects [1]有位图1.bmp ....

(所以后来我可以在列表中运行for_loop,找到每个对象中每个图像最亮的像素)

我知道这个问题可能看起来有点具体,但总体思路是加载多个图像并将单个图像保存到每个对象中(我在stackoverflow中找不到类似的例子)。

private void button_Click(object sender, EventArgs e)
{
    var myListOfObjects = new List<MyClass>();// This line produces a list of empty objects which is not something I want, I want a list of objects which is not empty.

    for (var i = 0; i < 20; i++)
    {
      myListOfObjects.Add(new MyClass(i));
    }
}
public class MyClass
{
    public MyClass(int i)
    {

    }
    private void OpenAbitmap(int i )
    {
        Bitmap picture = new Bitmap(@"C:\Users\Desktop\A\" + i.ToString() + ".bmp");

    }
}

1 个答案:

答案 0 :(得分:1)

如果“空对象”意味着你无法调用它上面的函数,那就是正确的:你将唯一的方法声明为private。您也不存储构造函数参数。

你需要这样的东西:

public class MyClass
{
    private int _index;

    public MyClass(int i)
    {
        _index = i;
    }
    public void OpenAbitmap()
    {
        Bitmap picture = new Bitmap(@"C:\Users\Desktop\A\" + _index.ToString() + ".bmp");
    }
}