【OpenCV学习笔记】【函数学习】十二(cvCanny()函数及其阈值设置的比较)
anny算子有两个阈值,上限和下限,构造函数定义为:
void cvCanny(const CvArr* img,CvArr* edges,double lowthreshold,double highthreshold,int apertureSize=3);
需要注意的是canny需要输入的是灰度图像,所以我们在使用canny之前要使用cvCvtColor将之转换为灰度图像,一下程序对高低阈值不同比例,不同大小进行设置来观察cvCanny的显示效果:
// TestCanny.cpp : 定义控制台应用程序的入口点。
// 设置canny中的阈值,对参数进行实验
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
int main(int argc,char** argv)
{
IplImage* src=cvLoadImage(argv[1],1);
IplImage* gray=cvCreateImage(cvSize(src->width,src->height),8,1);
IplImage* dst0=cvCreateImage(cvSize(src->width,src->height),8,1);
IplImage* dst1=cvCreateImage(cvSize(src->width,src->height),8,1);
IplImage* dst2=cvCreateImage(cvSize(src->width,src->height),8,1);
IplImage* dst3=cvCreateImage(cvSize(src->width,src->height),8,1);
cvCvtColor(src,gray,CV_RGB2GRAY);
cvCanny(gray,dst0,50,75,3);
cvCanny(gray,dst1,120,80,3);
cvCanny(gray,dst3,120,30,3);
cvCanny(gray,dst2,180,120,3);
cvNamedWindow("gray",0);
cvNamedWindow("dst0",0);
cvNamedWindow("dst1",0);
cvNamedWindow("dst2",0);
cvNamedWindow("dst3",0);
cvShowImage("gray",gray);
cvShowImage("dst0",dst0);
cvShowImage("dst1",dst1);
cvShowImage("dst2",dst2);
cvShowImage("dst3",dst2);
cvWaitKey(0);
cvReleaseImage(&gray);
cvReleaseImage(&dst0);
cvReleaseImage(&dst1);
cvReleaseImage(&dst2);
cvReleaseImage(&dst3);
cvDestroyWindow("gray");
cvDestroyWindow("dst0");
cvDestroyWindow("dst1");
cvDestroyWindow("dst2");
cvDestroyWindow("dst3");
}
【OpenCV学习笔记】【函数学习】十二(cvCanny()函数及其阈值设置的比较)相关推荐
- OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五
OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...
- OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...
- OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己
OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...
- Slicer学习笔记(六十二)slicer下导出模块接口
Slicer学习笔记(六十二)slicer下导出模块接口 1. 参考文件实现 1. 参考文件实现 通过配置config_file为每一个生成类添加 Export,并为每个Module生成 Export ...
- Slicer学习笔记(四十二)slicer c++源码编译
Slicer学习笔记(四十二)slicer c++源码编译 1.cmake生成项目 2.编译失败的原因汇总 2.1.下载代码失败 之前在windows下编译slicer,没有做笔记. 后面再次编译还会 ...
- OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年
首先还是要感谢箫鸣朋友在我<OpenCV学习笔记(四十)--再谈OpenCV数据结构Mat详解>的留言,告诉我M.at<float>(3, 3)在Debug模式下运行缓慢,推荐 ...
- 【OS学习笔记】三十二 保护模式九:分页机制对应的汇编代码之---内核代码
本片文章是以下两篇文章: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 对应的内核汇编代码. ;代码清单16-1;文件名 ...
- jquery设置宽_JavaScript学习笔记(三十二) jQuery(中)
jQuery 昨天讲了 jQuery 的基本选择器筛选器和属性操作 今天来说一些 jQuery 别的东西 元素操作 创建一个元素 var div = $(') 内部插入元素 // 向 div 元素中插 ...
- Dynamic CRM 2013学习笔记(四十二)流程5 - 实时/同步工作流(Workflow)用法图解...
实时工作流跟插件一样,也是用事件执行管道来执行,能在pre,post或核心操作中执行.跟插件一样,不能在创建之前和删除之后执行.如果执行过程中有异常发生,会取消并回滚整个操作.实时工作流里所有的活动和 ...
- 系统架构师学习笔记_第十二章_连载
第十二章 系统安全架构设计 12.1 信息系统安全架构的简单描述 信息安全的特征 是为了保证信息的 机密性.完整性.可用性.可控性.不可抵赖性. 以风险策略为基础. 12.1.1 信息安全的现状 ...
最新文章
- 如何利用 C# 爬取 One 持有者返利数据!
- CentOS 7 的初始化
- python 获取文件名_真实需求 | Python+os+openpyxl 批量获取Excel的文件名和最大行数...
- 钉钉用户数破5亿 低代码应用数8个月增长86万
- 【XAMPP】中mysql的admin页面打不开
- HDU 5778 abs
- $.ajax(0,jQuery Ajax显示0而不是Array(jQuery Ajax showing 0 instead of Array)
- MySoft.Data入门篇:编写业务逻辑
- Android-两种方式实现走马灯效果
- 超声波测距实验-传感器原理及应用实验
- MySQL数据库定期自动备份(定时任务)
- cf黑机器多久解除_CF永久解除机器码|CF机器码硬解封详细步骤教程+工具|CF辅助-QQ知啦娱乐网...
- run()方法和start()方法的区别
- 2016最新Java学习计划
- 苹果手机扫描文件并转换格式,怎么把扫描文件转换成文字,扫描出来的文件格式换个可以复制的文字
- 电脑手机生产力提升操作
- Qualcomm平台下基于QSEE的指纹识别方案移植之五多厂商兼容方案
- python查阅文献
- C#根据当前时间获取周,月,季度,年度等时间段的起止时间
- Android事件分发机制详解及解决文案:史上最全面、最易懂
热门文章
- 最好的5个C++ 网站
- 排序算法之三 选择排序(C++版本)
- uml边界类例子_UML中边界类、控制类和实体类
- java操作hbase使用hbase-client2依赖
- (day 52 - DFS) 剑指 Offer 68 - II. 二叉树的最近公共祖先
- html科学计算器,html+css+js实现科学计算器
- oracle如何储存超长汉子_oracle Clob 存储超长字符
- scala spark 数据对比_Spark 实践——用 Scala 和 Spark 进行数据分析
- SQL:postgresql中合并多个geom数据ST_Union以及比较两个geom数据是否相同ST_Equals
- mysql 1005 150_錯誤1005 errno:150與mysql