OpenCV学习笔记(2)边缘检测与滑动条的创建
来源:互联网 发布:软件测试linux面试题 编辑:程序博客网 时间:2024/06/01 09:38
<span style="font-size:14px;">#include "stdafx.h"#include"opencv2/opencv.hpp"#include <stdio.h>using namespace cv;using namespace std;Mat img, gray, edge, Cedge;int edgeThresh = 1;const char * keys = { "{1| |fruits.jpg|input image name}" };static void help(){printf("\nThis sample demonstrates Canny edge detection\n""Call:\n"" /.edge [image_name -- Default is fruits.jpg]\n\n");}static void onTrackbar(int, void*){blur(gray, edge, Size(3, 3));Canny(edge, edge, edgeThresh, edgeThresh * 3, 3);Cedge = Scalar::all(0);edge.copyTo(Cedge);imshow("Edge Img", Cedge);}int main(int argc, const char** argv){help();CommandLineParser parser(argc, argv, keys);string filename = parser.get<string>("1");Cedge.create(img.size(), img.type());img = imread(filename, 1);if (img.empty()){printf("cannot read image file:%s\n", filename.c_str());return -1;}cvtColor(img, gray, CV_BGR2GRAY);namedWindow("Edge Img", 1);createTrackbar("canny", "Edge Img", &edgeThresh, 100, onTrackbar);onTrackbar(0, 0);waitKey(0);return 0;}</span>
CommandLineParser的类
好像在opencv的c版本中,应该是opencv1.0以前,还没有出现CommandLineParser这个类,最近看到opencv2.3后面的版本里自带的samples,很多都用到了CommandLineParser这个类,那么这个类到底有什么作用呢,从命名大概可以猜出这是个命令行解析类。因为我们知道opencv是一个开源库,所以其很少有图形操作方面的api,基本上还是基于命令行执行的。那么这个类的出现主要是方便用户在命令行使用过程中减少工作量,可以在程序文件中直接指定命令行中的参数指令,方便了调试。
第一行就是这个类的构造函数,前2个参数是命令行传过来的,第3个就是刚刚定义的keys了,keys的结构有一定规律,比如说"{ c | camera | 0 | use camera or not}"都是用大括号和双引号引起来,然后中间的内容分成4断,用”|”分隔开,分别表示简称,文件来源,文件值和帮助语句。第二行和第三行表示打开摄像头和打开文件,文件的文件名等都在keys指针中了。
0 0
- OpenCV学习笔记(2)边缘检测与滑动条的创建
- opencv学习(2)滑动条的创建和使用
- 【Ubuntu+OpenCV】HighGUI之trackbar(滑动条)的创建--学习笔记【2】
- 【opencv学习笔记】2、Canny边缘检测
- opencv学习笔记2 边缘检测
- OpenCV学习笔记(十一):边缘检测
- OpenCV学习笔记(十三)边缘检测
- opencv学习笔记(三) 边缘检测
- OpenCV学习笔记(八) 边缘、线与圆的检测
- openCV学习笔记(2):Canny边缘检测算法应用
- OpenCV学习笔记(三):Canny边缘检测和滚动条制作
- opencv学习(七)(opencv3.0.0+VS2012+win7)打开摄像头并且进行边缘检测加上了滑动条
- <opencv>滑动条的创建与使用
- opencv滑动条的创建与使用
- opencv学习笔记(5)---- 滑动条的创建和使用
- opencv学习笔记 根据滑动条参数检测轮廓
- Opencv学习笔记(四):运用Canny算子边缘检测及Opencv中拖动条事件处理
- opencv-python 应用滑动条改变canny边缘检测的阈值
- 链式二叉树的实现
- Oracal导出dmp文件
- C++中小数点引用和箭头的区别
- 第九周——运算符重载——项目三分数类(续)
- Some notes on shared libraries with ld
- OpenCV学习笔记(2)边缘检测与滑动条的创建
- Linux(ARM)下目录含义
- 【Tools.PowerDesigner】概念数据模型
- mybatis实战教程(mybatis in action),mybatis入门到精通
- Async I/O and Python
- 临时图片
- 使用VS搭建三层结构
- C#流的初解
- leetcode--Merge k Sorted Lists