資源簡介
7種經(jīng)典邊緣提取算子canny,laplace,log,robert,sobel,prewitt,kirsch
代碼片段和文件信息
//?sobel.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
#include?“highgui.h“
#include?“cv.h“
#include?“cxcore.h“
#include?“math.h“
float?max(float?xfloat?y)
{
float?z;
if(x>y)z=x;
else?z=y;
return(z);
}
//Marr算子
void?log(IplImage?*srcIplImage?*dst)
{
//dst?=?cvCloneImage(src);
IplImage*?dst1?=?cvCreateImage(cvGetSize(src)321);
IplImage*?SmoothImg?=?cvCloneImage(src);
dst?=??cvCreateImage(cvGetSize(src)81);
cvSmooth(srcSmoothImgCV_GAUSSIAN33);??//對圖像做3*3的高斯平滑濾波
cvLaplace(SmoothImgdst13);
cvConvertScale(dst1dst);???//將圖像轉(zhuǎn)化為8位
double?min_val?=?0;double?max_val?=?0;
cvMinMaxLoc(dst&min_val&max_val);???//取圖像中的最大最小像素值
printf(“max_val?=?%f\nmin_val?=?%f\n“max_valmin_val);
cvNormalize(dstdst0255CV_MINMAX);?//歸一化處理
//對梯度圖加門限,二值化
?/* int?xy;
char*?p?=?dst->imageData;
int?w?=?dst->widthStep;
for(x?=?0;xwidth;x++)
{
for(y?=?0;yheight;y++)
{
if(p[x+y*w]>5
- 上一篇:qq查詢ip地址
- 下一篇:三自由度并聯(lián)機器人工作空間求解
評論
共有 條評論