分类: C/C++
2008-08-01 17:11:17

void CFigureView::OnPsCanny()
{
// TODO: 在此添加命令处理程序代码
CWaitCursor WaitCursor;
int nWidth = m_imageFile.GetWidth();
int nHeight= m_imageFile.GetHeight();
// 开辟内存,存储图象数据
unsigned char * pUnchImage = new unsigned char[nWidth*nHeight];
// 将图像数据保存在矩阵当中
for(int y = 0;y>16)?0:255;
g = (0x000000ff&pUnchEdge[y*nWidth x]>>8)?0:255;
b = (0x000000ff&pUnchEdge[y*nWidth x])?0:255;
Result = ((r g b)/3);
m_imageFile.SetPixelRGB(x,y,Result,Result,Result);
}
}
MakeBlackWhiteImage(m_imageFile,0);
delete []pUnchImage;
pUnchImage = NULL ;
delete []pUnchEdge ;
pUnchEdge = NULL ;
CFigureDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
pDoc->SetModifiedFlag(TRUE);
Invalidate();
}
Canny算子效果:![]() |
![]() |
| 黑白处理的 | canny算子的效果 |