使用OPENCV中的Sobel函数找函数边缘并显示

来源:互联网 发布:如何修改淘宝账户名称 编辑:程序博客网 时间:2024/06/05 05:38

{

Mat mat_blur;

  
mat_blur = in.clone();
  
GaussianBlur(in, mat_blur, Size(blurSize, blurSize), 0, 0, BORDER_DEFAULT);//高斯平滑


  
Mat mat_gray;
  
if (mat_blur.channels() == 3)
    
cvtColor(mat_blur, mat_gray, CV_RGB2GRAY);
  
else
    mat_gray = mat_blur;


  
int scale = SOBEL_SCALE;
  
int delta = SOBEL_DELTA;
  
int ddepth = SOBEL_DDEPTH;

  
Mat grad_x, grad_y;
  
Mat abs_grad_x, abs_grad_y;


Sobel(mat_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT);
  
convertScaleAbs(grad_x, abs_grad_x);//对于每个输入数组的元素函数convertScaleAbs 进行三次操作依次是:缩放,得到一个绝对值,转换成无符号8位类型


  
Mat grad;
  
addWeighted(abs_grad_x, SOBEL_X_WEIGHT, 0, 0, 0, grad);//函数addWeighted 两个数组的加权


  
Mat mat_threshold;
  
double otsu_thresh_val =
      threshold(grad, mat_threshold, 0, 255, CV_THRESH_OTSU + CV_THRESH_BINARY);




 
 Mat element = getStructuringElement(MORPH_RECT, Size(morphW, morphH));
  
morphologyEx(mat_threshold, mat_threshold, MORPH_CLOSE, element);
//闭运算



  
out = mat_threshold;


  return 0;

}


element:腐蚀操作的内核。 如果不指定,默认为一个简单的 bubuko.com,布布扣 矩阵。否则,我们就要明确指定它的形状,可以使用函数getStructuringElement().

anchor:默认为Point(-1,-1),内核中心点。省略时为默认值。

iterations:腐蚀次数。省略时为默认值1。

borderType:推断边缘类型,具体参见borderInterpolate函数。默认为BORDER_DEFAULT,省略时为默认值。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高德地图 导航信息 当前导航路径信息 实时导航信息 高德导航时Navi的信息 高德NaviInfo 安卓蓝牙发送信息 clj.fastble 先采用队列求一条最短迷宫路径长度minlen,再采用栈求所有长度为minlen的最短迷宫路径 iOS蓝牙 pycharm激活 shadowsocks下载 shadowsocks下载 开源沙龙 C++程序设计从键盘中输入两个整数,求这两个整数的最大公约数和最小公倍数。 江南大学五部曲 centos搭建ss 算法之美_源代码发布(8) understand halfaSPIclockcycleproducesaclockedge 贪心算法活动 TRIZ系列-创新原理-17 朴素贝叶斯分类 王者荣耀金币 探索性数据分析演示 治安防控 治安 TRIZ系列-创新原理-19 TRIZ系列-创新原理-20 利用图像的平移、旋转、缩放、镜像等空间几何变换实现对图像的自适应缩放、几何变换等特效 利用图像的平移、旋转、缩放、镜像等空间几何变换实现对图像的几何变换等特效 [Err]1005-Can\'tcreatetable\'item4.#sql-1238_2c\'( SAPFICO财务成本知识 财务管理分析(希金斯:第八版) 图像解压 巜人民曰报》采访张文宏,陈尔真 linux上服务器如何转发设置 图像的自适应缩放、几何变换等特效 千讯网络下载 Gsensor调试 MTKGsensor调试