边缘检测
包括:Canny,DoG,Laplacian,LoG,Prewitt,Robert,Sobel。
下面是简单的Canny列子,其他的类似,不再截图。
第一步:打开软件
第二步:“新建”,“+”,选择第“1”步,双击“读取”算子,选择图片以及彩色模式
第三步:“+”,选择第“2”步,双击“Canny”算子。
第四步:点击“全部”,会显示一张opencv的图片,你可以看到相应的效果。这里Canny算法暂时没有输入参数。
所有的算法都在AL目录下面,所有的算法都在相应类的函数convert里,列如“Canny”对应的是ALECanny,您如果想使用相关的处理,直接复制相应的代码即可。
void CALECanny::convert()
{
if (m_pStepItem == NULL) return;
try
{
CALSIECanny* pStepItem = (CALSIECanny*)m_pStepItem;
int nThreshold = pStepItem->GetItemThreshold();
Mat gaosrc, graysrc, cadst;
GaussianBlur(m_srcMat, gaosrc, Size(3, 3), 0);
cvtColor(gaosrc, graysrc, CV_RGB2GRAY);
Canny(graysrc, cadst, nThreshold, nThreshold * 2);
m_dstMat.create(m_srcMat.size(), m_srcMat.type());// 创建与src同类型和大小的矩阵(dst)
m_dstMat = Scalar::all(0);//所有元素设置为0
m_srcMat.copyTo(m_dstMat, cadst);
SetDstType(AL_DST_Mat_One);
}
catch (...)
{
}
}