surf算法中积分和(图)与盒式(box)滤波器的关系(二,c#实现代码)
关于矩形框(roi区域)积分和的c#实现代码:
//m_cutImageRoi//这个机器视觉入门(二)里边的类,博客中有,专门用来截取感兴趣区域图像的,
//在这里,很简单,只是一个不用旋转的矩形框,你也可以自己搞定
//glob_buffer512512
//点一的积分和//矩形的左,顶
// int w = Convert.ToInt32(textBoxpt1x.Text);
int w = (int)m_cutImageRoi.m_RoiBase1.rcWin.Left;
// int h = Convert.ToInt32(textBoxpt1y.Text);
int h = (int)m_cutImageRoi.m_RoiBase1.rcWin.Top;
long sum1 = 0;
for (int j = 0; j < h; j++)
for (int i = 0; i < w; i++)
{
int n = j * 512 + i;
sum1 += glob_buffer512512[n];
}
//点二的积分和//矩形的右,顶
w = (int)m_cutImageRoi.m_RoiBase1.rcWin.Right;
h = (int)m_cutImageRoi.m_RoiBase1.rcWin.Top;
long sum2 = 0;
for (int j = 0; j < h; j++)
for (int i = 0; i < w; i++)
{
int n = j * 512 + i;
sum2 += glob_buffer512512[n];
}
//点三的积分和//矩形的左,底
w = (int)m_cutImageRoi.m_RoiBase1.rcWin.Left;
h = (int)m_cutImageRoi.m_RoiBase1.rcWin.Bottom;
long sum3 = 0;
for (int j = 0; j < h; j++)
for (int i = 0; i < w; i++)
{
int n = j * 512 + i;
sum3 += glob_buffer512512[n];
}
//点四的积分和//矩形的右,底
w = (int)m_cutImageRoi.m_RoiBase1.rcWin.Right;
h = (int)m_cutImageRoi.m_RoiBase1.rcWin.Bottom;
long sum4 = 0;
for (int j = 0; j < h; j++)
for (int i = 0; i < w; i++)
{
int n = j * 512 + i;
sum4 += glob_buffer512512[n];
}
long resultRc = sum4 + sum1 - sum2 - sum3;//感兴趣roi矩形区域积分和由四个点的积分和加减决定
textBox积分和.Text = resultRc.ToString();