#include <opencv2/opencv.hpp>
// roberts算子实现
cv::Mat roberts(cv::Mat srcImage)
{cv::Mat dstImage = srcImage.clone();int nRows = dstImage.rows;int nCols = dstImage.cols;for (int i = 0; i < nRows - 1; i++){for (int j = 0; j < nCols - 1; j++){// 根据公式计算int t1 = (srcImage.at<uchar>(i, j) -srcImage.at<uchar>(i + 1, j + 1)) *(srcImage.at<uchar>(i, j) -srcImage.at<uchar>(i + 1, j + 1));int t2 = (srcImage.at<uchar>(i + 1, j) -srcImage.at<uchar>(i, j + 1)) *(srcImage.at<uchar>(i + 1, j) -srcImage.at<uchar>(i, j + 1));// 计算对角线像素差dstImage.at<uchar>(i, j) = (uchar)sqrt(t1 + t2);}}return dstImage;
}
int main()
{cv::Mat srcImage =cv::imread("..\\images\\building.jpg", 0);if (!srcImage.data)return -1;cv::imshow("srcImage", srcImage);cv::Mat dstImage = roberts(srcImage);cv::imshow("dstImage", dstImage);cv::waitKey(0);return 0;
}

转载:http://blog.csdn.net/zhuwei1988

Roberts 边缘检测相关推荐

  1. OpenCV边缘检测(一)——Roberts边缘检测

    Roberts边缘检测是一种基于微分算子的边缘检测算法,主要用于图像处理中的边缘检测.该算法的基本原理是在图像中找到像素点与其相邻像素点之间的灰度差异,进而确定图像中的边缘. 具体来说,Roberts ...

  2. Roberts边缘检测算子

    clear all; sourcePic=imread('9.jpg'); %读取原图像 grayPic=rgb2gray(sourcePic); %转换成灰度图像 subplot(131);imsh ...

  3. Roberts边缘检测

    函数的梯度为df = af/ax * ix + af/ay * iy 图像梯度即为梯度的模, df = sqrt((af/ax) ^ 2 + (af/ay) ^ 2) 为简化计算过程,可表示为 df ...

  4. 图像算法八:【图像分割】边缘检测(Roberts,Sobel,canny)、霍夫变换(hough)、阈值分割、区域分割

    1.我们主要学习以下四种差分算子 Roberts算子 Sobel算子 Prewitt算子 canny算子 % Matlab图像边缘检测梯度算子–Roberts.Prewitt.Sobel.LOG.Ca ...

  5. 几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny

    from:https://blog.csdn.net/gdut2015go/article/details/46779251 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中 ...

  6. Matlab图像边缘检测Roberts\Sobel\Prewitt\Canny算子

    确定图像中的物体边界的一种方法是先检测每个像素和其直接淋雨的状态已决定该像素是否确实处于一个物体的边界上.具有这种特性的像素被标记为边缘点.当图像中各个像素的灰度级用来反映各像素要求的程度时,这种图像 ...

  7. 【图像处理】基于matlab边缘检测 Sobel、Roberts、Prewitt

    matlab边缘检测 Sobel.Roberts.Prewitt 一.Sobel边缘检测算法 1.算法简介 2.matlab实现 3.Sobel检测结果 二.Roberts边缘检测算法 1.算法简介 ...

  8. OpenCV边缘检测专题

    一阶导数算子 微分算子在图像处理中扮演重要的角色,其算法实现简单,而且边缘检测的效果又较好,因此这些基本的微分算子是学习图像处理过程中的必备方法,下面着重讨论几种常见的微分算子. 1.Sobel 其主 ...

  9. 边缘检测的各种微分算子比较(Sobel,Robert,Prewitt,Laplacian,Canny)

    边缘检测的各种微分算子比较(Sobel,Robert,Prewitt,Laplacian,Canny) 不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像.需要说明的是:边缘和物体间的 ...

最新文章

  1. JDK/Dubbo/Spring 三种 SPI 机制,谁更好?
  2. 神经网络侧枝抑制(自编码)
  3. 网络请求中常见的加密机制和加密算法理解 流量加密
  4. mysql容器重启数据是否丢失_docker重启后数据是否会丢失
  5. APT 信息收集——shodan.io ,fofa.so、 MX 及 邮件。mx记录查询。censys.io查询子域名。...
  6. linux fedora35指定某个固定的启动项作为默认的启动项
  7. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1068:与指定数字相同的数的个数
  8. 现代软件工程讲义 11 项目管理 - 事后诸葛亮会议
  9. HTML form的一些属性(第一版)
  10. Flex 学习随笔 ---- 使用WebService 与数据库连接
  11. css线加点的进度,纯CSS实现的交互式进度条(点击带进度填充动画)
  12. hive分析函数取最新_Hive的分析函数的学习
  13. setsockopt用法详解
  14. B - Vicious Keyboard
  15. 抓取异常信息 服务器错误,抓取异常信息: socket 读写错误 - 狸窝
  16. 2020-2021 Winter Petrozavodsk Camp, Belarusian SU Contest (XXI Open Cup, Grand Prix of Belarus)
  17. 13,12_基本运算,add/minus/multiply/divide,矩阵相乘mm,matmul,pow/sqrt/rsqrt,exp/log近似值,统计属性,mean,sum,min,max
  18. 牛顿(Newton)方法
  19. 操作文件操作符的工作模式:LT(电平触发)ET(边缘触发)实验对比
  20. 计算机操作系统--Linux初试03

热门文章

  1. 通过 Keras 构建深度学习模型的步骤
  2. (C++)A+B 输入输出练习V 输入的第一行是一个正数N,表示后面有N行。每一行的第一个数是M,表示本行后面还有M个数。
  3. hung-yi lee_p5-7_Gradient Descent(梯度下降)
  4. java虚拟机栈帧_Java虚拟机,运行时栈帧结构
  5. 为什么很努力进步却不明显
  6. Microsoft Dynamics CRM server 2013 中业务规则,有点像C#的正则表达式
  7. awk: (FILENAME=- FNR=1) 致命错误: 试图访问字段 -2
  8. Java Timer 定时器的使用
  9. Mac下配置Maven
  10. 菜鸟学习HTML5+CSS3(一)