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");
}
}
答案 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");
}
}