• 大小: 9.40KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-03-28
  • 语言: 其他
  • 标签: 其他  

资源简介


7种经典边缘提取算子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);   //将图像转化为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

评论

共有 条评论