我在 PictureBox1 中有 image_1。我想扫描这张图片中间的一个矩形部分,比如 x 轴上大约 300 到 500,y 轴上大约 300 到 450。当我浏览这一部分时,我想将所有像素的值相加并得到它们的平均值。
然后我在测试图像 PictureBox2 中有 image_2。这是第一个图像的副本,但 PictureBox2 上有一个滚动条。如果我随后在与第一张图像相同的位置扫描第二张图像,则对该矩形内的每个像素值求和并获得它们的平均值,这些值应该与我使用 image_1 获得的值完全相同。
现在,我将使用 PictureBox2 上的滚动条在垂直 y 轴上稍微向上移动 image_2,然后在与之前相同的固定位置重新扫描,将像素值相加并获得它们的平均值。这些值应该不同,因为我正在扫描图像的不同部分。然后我重复这个过程,在 image_2 上的 y 轴上有不同程度的差异,以获得值读数。
这只是为了证明一个概念。在固定的矩形位置扫描图像,求和和平均值足以最终缩小值,以便可以定位对象的开始。
无论这是否被认为是可能的,我都想尝试一下。请指教最简单的方法。现阶段没有必要尝试最快或最有效的方法,纯粹是目前最好的最简单的方法
我可以简单地这样做吗?
namespace imageAlign
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Bitmap myImage1 = (Bitmap)pictureBox1.Image;
OpenFileDialog ofd1 = new OpenFileDialog();
if (ofd1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(ofd1.FileName);
// get pixel value and store it in array, sum and average it so it can Be compared to image2
int sum = 0;
for (int i = 0; i > 300 && i < 500; i++)
{
for (int j = 0; j > 300 && j < 450; i++)
{
int[] img1 = new int[i];
sum += img1[i];
MessageBox.Show(sum);
//Color pixel = img1.GetPixel(i,j);
//sum and average pixel values in array
}
}
}
}
谢谢你们。