1.已经实现通过鼠标点击MFC中的图像,以鼠标点击的中心处理一个200*200的正方体。
代码如下:
int gao=Nrect.top-200;
int zuo=Nrect.left-200;
int gao1=Nrect.top+200;
int zuo1=Nrect.left+200;
for(i=gao;i<gao1;i++)
{
for(j=zuo;j<zuo1;j++)
{
if (pDesc->m_pRawBuffer[i*with+j]>100)//
//////////
{//
if(pDesc->m_pRawBuffer[i*with+(j+1)]>100||(pDesc->m_pRawBuffer[i*with+(j-1)]>100))//灰度值大于阈值,判定是否是孤立点
{
///////判断是否是干扰光斑上的点
Y_axisN=Y_axisN+i;
X_axisN=X_axisN+j;
num++;
}
else
{
//
// pDesc->m_pRawBuffer[i*with+j] = 255;
}
}//
else////灰度值小于阈值,二值化
{
// pDesc->m_pRawBuffer[i*with+j] = 255;//
}
}
}2.想把中心这个200*200的处理框,改成十字处理(十字长度和高度还是200),间距100个就行。改如何更这个程序呢?
代码如下:
int gao=Nrect.top-200;
int zuo=Nrect.left-200;
int gao1=Nrect.top+200;
int zuo1=Nrect.left+200;
for(i=gao;i<gao1;i++)
{
for(j=zuo;j<zuo1;j++)
{
if (pDesc->m_pRawBuffer[i*with+j]>100)//
//////////
{//
if(pDesc->m_pRawBuffer[i*with+(j+1)]>100||(pDesc->m_pRawBuffer[i*with+(j-1)]>100))//灰度值大于阈值,判定是否是孤立点
{
///////判断是否是干扰光斑上的点
Y_axisN=Y_axisN+i;
X_axisN=X_axisN+j;
num++;
}
else
{
//
// pDesc->m_pRawBuffer[i*with+j] = 255;
}
}//
else////灰度值小于阈值,二值化
{
// pDesc->m_pRawBuffer[i*with+j] = 255;//
}
}
}2.想把中心这个200*200的处理框,改成十字处理(十字长度和高度还是200),间距100个就行。改如何更这个程序呢?
int gao4=十字横下边
int zou3=十字竖左边
int zou4=十字竖右边
for(i=gao;i<gao1;i++)
{
for(j=zuo;j<zuo1;j++)
{
BOOL con1=j>gao&&j<gao3&&i>zou3&&i<zou4;
BOOL con2=j>gao3&&j<gao4;
BOOL con3=j>gao4&&j<gao2&&i>zou3&&i<zou4;
if(!(con1&&con2&&con3)) continue;
这里接楼主原来的程序
应该是
if(!(con1||con2||con3)) continue;