很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录。

代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tree/master/OpenCVTest

效果

代码

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp> // cvtColor // http ://blog.csdn.net/hitwengqi/article/details/6877864 static cv::Mat image, edge; // 原始图片,canny边缘保存图片
static cv::Mat gray, gedge; // 灰度图片,canny便于保存图片 int edgeThresh = 1; // 控制进度条(传出进度条控制的值) void onTrackBar(int, void*); int CannyEdgeDetection()
{
// 加载原始图片
image = cv::imread("../Image/sisy.jpg");
// 判断载入是否成功
if (image.empty()) {
printf("载入图片失败\n");
return -1;
}
// 生成灰度图片,因为只有灰度图片才能生成边缘图片
// gray.create(image.size(), image.type()); // 这里create是没有用的
cv::cvtColor(image, gray, CV_BGR2GRAY); // 这里会自动去create到转换的目标保存类型,这里应该是UINT8 cv::imshow("gray", gray); // 新建一个窗口
cv::namedWindow("Edge Map", 1); // 生成一个进度条来控制边缘检测
cv::createTrackbar("Canny Threshold", "Edge Map",
&edgeThresh/*传出进度条的值*/,100/*进度条长度*/,
onTrackBar /*进度条值改变时调用的函数*/); // 初始化图像
onTrackBar(0, NULL); // 等待按键
cv::waitKey();
return 0;
} void onTrackBar(int, void*)
{
// blur 灰度图片(blur 模糊)
cv::blur(gray, gedge, cv::Size(3, 3));
// Canny 边缘检测
cv::Canny(gray /*单通道输入图像.*/,
gedge/*单通道存储边缘的输出图像*/,
edgeThresh/*第一个阈值*/,
edgeThresh * 3 /*第二个阈值*/,
3 /*Sobel算子内核大小*/); // 全部设置为0
edge = cv::Scalar::all(0); // 拷贝边缘像素点
image.copyTo(edge, gedge); // 显示图片
cv::imshow("Edge Map", edge);
}

OpenCV学习代码记录——canny边缘检测的更多相关文章

  1. OpenCV学习代码记录——Hough线段检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  2. OpenCV学习笔记(11)——Canny边缘检测

    了解Canny边缘检测的概念 1.原理 Canny边缘检测是一种非常流行的边缘检测算法,是 John F.Canny在1986年提出的.它是一个有很多步构成的算法 1)噪声去除 使用5*5的高斯滤波器 ...

  3. OpenCV学习代码记录——人脸检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  4. OpenCV学习代码记录—— Snake轮廓

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  5. OpenCV学习代码记录——轮廓(contour)检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  6. 实战深度学习OpenCV(一):canny边缘检测

    利用canny边缘检测,我们可以很好地得到哦一个图像的轮廓,下面是基于C++的,这是我们通过这段代码得到的结果: #include "pch.h" #include <ios ...

  7. [学习OpenCV攻略][008][Canny边缘检测]

    cvGetSize(输入图片) 得到输入图片的大小 cvCanny(输入图片,输出图片,lowThresh,highThresh,aperture) 把输入图片按设定光圈值进行Canny边缘检测,然后 ...

  8. openCV(四)---Canny边缘检测

    图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘. 直接上代码,函数简介都在代码注释中 //canny边缘检测 -(void) ...

  9. Opencv学习笔记3:边缘检测算子的实现方法

    一.边缘检测概念 图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘.效果如图: 接下来介绍一下边缘提取的几种算子,具体证明过程 ...

随机推荐

  1. 输入两个很大的正数(用C字符串表示),输出他们的乘积,将设不考虑非法输入。

    #include<iostream> #include<cassert> void multiply(const char *a,const char *b) { assert ...

  2. 系统吞吐量、TPS(QPS)、用户并发量、性能測试概念和公式

    PS:以下是性能測试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高, ...

  3. JSON与XML的区别比较(转)

    原文链接:JSON与XML的区别比较 1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以 ...

  4. 【StatLearn】统计学习中knn算法实验(2)

    接着统计学习中knn算法实验(1)的内容 Problem: Explore the data before classification using summary statistics or vis ...

  5. C# MemCached分布式缓存

    using System; using System.Collections.Generic; using System.Text; using Memcached.ClientLibrary; us ...

  6. checkbox反复调用attr('checked', true/false)只有第一次生效

    /** * 全选 */ function checkAll() { $("input[name=ids]").attr("checked", true); } ...

  7. 绝对定位常见误区:position:absolute相对于谁定位、及当溢出时怎么隐藏

    1.绝对定位元素溢出父元素,怎么隐藏问题? 通常,为了让DIV子元素超出部分隐藏,都是在父元素设置overflow:hidden,这样即可防止子元素撑开父元素,使子元素能够溢出隐藏! 但是,对于pos ...

  8. Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招

    https://www.leiphone.com/news/201803/fPnpTdrkvUHf7uAj.html 雷锋网 AI 研习社消息,Kaggle 上 Corporación Favorit ...

  9. Centos下配置单元测试工具gtest

    gtest是google提供的一个非常强大的单元测试工具,下载地址:https://code.google.com/p/googletest 我下载的是gtest-1.6.0.拷贝到Centos系统上 ...

  10. php命名空间的使用,同一个命名空间可以在多个文件中定义

    php namespace的使用,直接打印出已经定义的命名空间 直接上代码,a.php , b.php, c.php , main.php a.php <?php namespace A{ cl ...