Canny Detector 是一种针对快速实时边缘检测而优化的多阶段算法,该算法的基本目标是检测亮度(大梯度)的急剧变化,例如从白色到黑色的转换,在给定一组阈值的情况下将它们定义为边缘

opencv使用track bar 调整canny算子参数,提取到合适的图像边缘。

#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;void trackBar(int, void*);
int s1=0,s2=0;
Mat src, dst;
int main()
{src = imread("E:/image/image/daibola.jpg");if(src.empty()){printf("can not load image \n");return -1;}cvNamedWindow("input", CV_WINDOW_AUTOSIZE);imshow("input", src);dst = src.clone();cvNamedWindow("output", CV_WINDOW_AUTOSIZE);createTrackbar("canny1", "output", &s1, 255, trackBar);createTrackbar("canny2", "output", &s2, 255, trackBar);GaussianBlur(src,src,Size(3,3),0);waitKey();return 0;
}void trackBar(int, void*)
{Canny(src,dst,s1,s2,3);imshow("output", dst);
}

sobel算子是一种常用的边缘检测算子,是一阶的梯度算法。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。

opencv实现代码如下:

#include<opencv2/opencv.hpp>
#include<iostream>
#include<opencv2/highgui/highgui_c.h>
#include<vector>
#include<cstdlib> using namespace cv;
using namespace std;int main()
{Mat src, dst;src = imread("D://opencv//0.jpg");if (src.empty()){printf("can not load image \n");return -1;}dst = Mat::zeros(src.size(), src.type());cvNamedWindow("input", CV_WINDOW_AUTOSIZE);imshow("input", src);Mat kernel = (Mat_<int>(2, 2) << 0, 1, -1, 0);filter2D(src, dst, -1, kernel, Point(-1, -1), 0.0);  //对图像做卷积Mat xgrad, ygrad;Sobel(src, xgrad, CV_16S, 1, 0);Sobel(src, ygrad, CV_16S, 0, 1);convertScaleAbs(xgrad, xgrad);               //该操作可实现图像增强等相关操作的快速运算convertScaleAbs(ygrad, ygrad);addWeighted(xgrad, 0.5, ygrad, 0.5, 0, dst); //将两张相同大小,相同类型的图片融合的函数//addWeighted(dst,0.5,src,1,0,dst);cvNamedWindow("output", CV_WINDOW_AUTOSIZE);imshow("output", dst);waitKey();return 0;
}

实现效果如下:

opencv3/C++图像边缘提取canny算子与Sobel算子实现opencv(VS2019 C++)相关推荐

  1. 应用sobel算子算法c语言,Canny算子与Sobel算子求图像边缘的C代码实现

    *Canny算子与Sobel算子求图像边缘笔记* 1.Canny求边缘算法原理简述 Canny检测边缘主要分为以下 四个算法步骤: A:噪声去除 canny算子是通过对每个像素点求一阶导数来找到梯度明 ...

  2. 图像边缘提取——梯度算子、Roberts算子、prewitt算子、Sobel算子、Kirsch算子、LOG算子的matlab实现

    #图像边缘提取-- ##梯度算子.Roberts算子.prewitt算子.Sobel算子.Kirsch算子.LOG算子的matlab实现 matlab代码 clear; f=rgb2gray(imre ...

  3. 边缘检测,Roberts 算子,Sobel算子,Canny 算子

    边缘检测 在图像中,边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标.目标与背景.区域与区域之间.边缘表明一个特征区域的终结和另一特征区域的开始.边缘所分开区域的内部特征或属性是一致的,而不 ...

  4. 边缘提取——Prewitt算子和Sobel算子

    目录 Prewitt算子和Sobel算子 理论介绍 编码实现(Python) debug过程 Prewitt算子和Sobel算子 理论介绍 Prewitt算子和Sobel算子也是基于一阶导数的算子. ...

  5. 灰度图像--图像增强 Robert算子、Sobel算子

    灰度图像--图像增强 Robert算子.Sobel算子         目录(?)[+] 开篇废话 图像梯度介绍 Robert算子 Sobel算子 代码 结果 总结 学习DIP第36天 转载请标明本文 ...

  6. Robert算子、Sobel算子、拉普拉斯算子

    文章目录 1.Robert算子 2.Sobel算子 3.拉普拉斯算子 4.结果 1.Robert算子 // 1. Robert算子cv::Mat gray;cv::Mat dstRoX;cv::Mat ...

  7. python sobel算子_python自编程序实现——robert算子、sobel算子、Laplace算子进行图像边缘提取...

    实现思路: 1,将传进来的图片矩阵用算子进行卷积求和(卷积和取绝对值) 2,用新的矩阵(与原图一样大小)去接收每次的卷积和的值 3,卷积图片所有的像素点后,把新的矩阵数据类型转化为uint8 注意: ...

  8. 《opencv学习笔记》-- 边缘检测和canny算子、sobel算子、LapIacian 算子、scharr滤波器

    目录 边缘检测 canny算子 sobel算子 LapIacian 算子 (拉普拉斯) scharr滤波器 边缘检测 边缘检测步骤: 1.滤波: 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导 ...

  9. 差分近似图像导数算子之Sobel算子

    背景引言 图像处理中,一个最基本并且最重要的卷积就是导数的计算,一般用来表达微分最常用的操作是Sobel算子,可以包含任意阶的微分以及融合偏导.主要用作为边缘检测.在技术上,它是一离散性差分算子,用来 ...

最新文章

  1. Cisco路由器的口令恢復
  2. sas数据集怎么导出_PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击!...
  3. C语言——第六周作业
  4. 《Groovy语言规范》-语法(三)
  5. beyond compare如何添加新文件并重新比较?
  6. 查看mysql库大小,表大小,索引大小
  7. MEP(minimum error pruning) principle with python implemention
  8. 隐藏esp_仅需一分钟教你看懂汽车内的隐藏功能,哪些功能是你不知道的?
  9. html 输入框从左上角,在输入框的左上角,使文本开始_input_开发99编程知识库
  10. java中 下列不合法的语句_在Java中,下列( )是不合法的赋值语句。_学小易找答案...
  11. 如何测试服务器上数据库服务器能否连接上
  12. 火灾原来离我们那么近
  13. CentOS安装lynis安全漏洞扫描工具
  14. Python绘图 好用的网址
  15. 2021.11.19【读书笔记】丨snakemake常见问题汇总(下)
  16. JSP中page指令
  17. Array王锐力作:osg与PhysX结合系列内容——第5节 角色动画效果(下)
  18. leetcode 968 监控摄像头
  19. 面试了几十家软件测试公司全是这个“套路”
  20. 80行代码自己动手写一个表格拆分与合并小工具(文末附工具下载)

热门文章

  1. java juc exchanger_JUC——Exchanger
  2. 小学生计算机使用计划书,【习惯养成计划表】_小学生好习惯养成计划一览表...
  3. 组件封装为mxp文件的方法
  4. Python实现 通过RS232 SCPI 命令控制Tektronix DMM4050
  5. 洛伦兹方程c语言,龙格库塔在C为洛伦兹方程
  6. 超级变态聊天 聊到对方崩溃
  7. php烟花效果,PS制作浪漫烟花效果
  8. MR三维电子沙盘虚拟现实数字沙盘开发教程第1课
  9. 云鲸智能首次亮相上海进博会,引领行业发展新风向
  10. 冒泡,选择,插入,快速排序