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个就行。改如何更这个程序呢?

解决方案 »

  1.   

    int gao3=十字横上边
    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;
                          
                         这里接楼主原来的程序
      

  2.   

    错了一个地方
    应该是
    if(!(con1||con2||con3)) continue;