图像直接卷积 Sobel 边缘实现
bool sobelEdge(const cv::Mat& srcImage, cv::Mat& resultImage,uchar threshold)
{CV_Assert(srcImage.channels() == 1);// 初始化水平核因子Mat sobelx = (Mat_<double>(3, 3) << 1, 0,-1, 2, 0, -2, 1, 0, -1);// 初始化垂直核因子Mat sobely = (Mat_<double>(3, 3) << 1, 2, 1,0, 0, 0, -1, -2, -1);resultImage = Mat::zeros(srcImage.rows - 2, srcImage.cols - 2, srcImage.type());double edgeX = 0;double edgeY = 0;double graMag = 0;for(int k = 1; k < srcImage.rows - 1; ++k){for(int n = 1; n < srcImage.cols - 1; ++n){edgeX = 0;edgeY = 0;// 遍历计算水平与垂直梯度for(int i = -1; i <= 1; ++i){for(int j = -1; j <= 1; ++j){edgeX += srcImage.at<uchar>(k + i, n + j) *sobelx.at<double>(1 + i, 1 + j);edgeY += srcImage.at<uchar>(k + i, n + j) * sobely.at<double>(1 + i, 1 + j);}}// 计算梯度模长graMag = sqrt(pow(edgeY, 2) + pow(edgeX, 2));// 二值化resultImage.at<uchar>(k - 1, n - 1) =((graMag > threshold)? 255 : 0 );}}return true;
}
转载:http://blog.csdn.net/zhuwei1988
图像直接卷积 Sobel 边缘实现相关推荐
- 使用cv2.Sobel()、cv2.Scharr()、cv2.Laplacian()寻找图像的梯度、边缘
Python,OpenCV寻找图像的梯度.边缘 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用cv2.Sobel().cv2.Scharr().cv2.Laplacian()寻找图像的梯度.边 ...
- Sobel 边缘实现
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include "o ...
- Matlab图像边缘检测Roberts\Sobel\Prewitt\Canny算子
确定图像中的物体边界的一种方法是先检测每个像素和其直接淋雨的状态已决定该像素是否确实处于一个物体的边界上.具有这种特性的像素被标记为边缘点.当图像中各个像素的灰度级用来反映各像素要求的程度时,这种图像 ...
- 图像边缘检测-Canny,Sobel等算子
一.前言 首先我们先来简单了解一下什么是数字图像处理(Digital Image Processing),先看一下数字图像主要的两个应用领域: 1.改善图示信息以便人们解释: 2.为存储.传输和表示而 ...
- OpenCV图像梯度(Sobel和Scharr)
OpenCV图像梯度(Sobel和Scharr) 1 图像梯度是什么? 2 图像梯度的用途 3 图像梯度的使用 参考 这篇博客将介绍图像渐变以及如何使用OpenCV的cv2.Sobel计算Sobel渐 ...
- 理解图像中卷积操作的含义
原文地址:https://blog.csdn.net/chaipp0607/article/details/72236892?locationNum=9&fps=1 上文用生动的例子来解释卷积 ...
- opencv 对图像进行卷积
卷积 什么是二维卷积呢?看下面一张图就一目了然: 卷积就是循环对图像跟一个核逐个元素相乘再求和得到另外一副图像的操作,比如结果图中第一个元素5是怎么算的呢?原图中3×3的区域与3×3的核逐个元素相乘再 ...
- em算法 图像模糊检测_基于EM算法的眼底OCT图像反卷积去模糊技术
引言 光学相干层析成像技术(Optical coherence tomography, OCT)作为一种发展迅速的视网膜检查手段,具有分辨率高.灵敏性强.成像速度快.检查方便以及对眼睛无伤害等特点[. ...
- 卷积 对图像进行卷积操作 卷积神经网络
目录 卷积 对图像进行卷积操作 卷积神经网络 卷积(Filtering) 池化(下采样)(Pooling) 修正线性单元(Rectified Linear Units)(ReLus激活函数) 全连接层 ...
最新文章
- 对于session序列化跟session的钝化与活化的粗浅理解
- 回顾以前的线程安全的类
- CLion:JetBrains 正式推出的 C/C++ IDE
- RMAN-06026报错解决方法
- 结构体中的自然对界法则
- 交华为换机access配置_华为交换机Hybrid接口及基础配置
- 数据结构分类概述【转载】
- eclipse启动mysql报错_Eclipse+mysql+java Eclipse中运行没有问题,但打包后运行不了,也不报错,求高手指点...
- openmv识别物体并与单片机通信(STM32)
- OpenLDAP的安装和配置(含TLS和复制)
- JavaScript设计一个框架
- 部分手机浏览器存在将ajax请求当成广告过滤的情况,及解决方案
- 高级I/O复用技术:Epoll的使用及一个完整的C实例
- 码农谷 找出N之内的所有完数
- 潘多拉路由器固件备份
- Silverlight 4 Tools for Visual Studio 2010手动一步一步安装
- oracle 分组随机抽取,Oracle 中实现随机抽取数据
- EndNote常见问题:更改DOI号为超链接/用URL代替DOI号等
- word2007工具栏隐藏了怎样能一直显示?
- win7系统传奇如何架服务器,win7系统如何架设传奇服务端玩游戏更流畅
热门文章
- Spring原理总结
- Java培训好不好?零基础可以学吗?
- mysql可以做日期处理吗_mysql可以做日期处理吗
- 跨平台抓包软件,可以替代Fiddler
- [译]Web Inspector开始支持CSS区域
- javascript 操作Word和Excel的实现代码
- VSCode使用笔记
- 对于金融的简单理解(一)
- 阅读Book: MultiObjective using Evolutionary Algorithms (5) ---- Non-Dominated Sorting of a Population
- 9.Matlab中的repmat,clock,rand以及seed,state,twister参数