// Threshold.cpp : Defines the entry point for the console application.
// #include "stdafx.h" #include <cv.h>
#include <highgui.h>
int g_threshold = 100;
IplImage* img1= NULL;
IplImage* g_gray = NULL;
CvMemStorage* g_storage = NULL;
void on_trackbar(int)
{ //将RGB转化为灰度图像
cvCvtColor(img1, g_gray, CV_BGR2GRAY); //设定阈值为 g_threshold
cvThreshold(g_gray, g_gray, g_threshold, 255, CV_THRESH_BINARY); //用来创建一个内存存储器,来统一管理各种动态对象的内存。比方说序列,这个函数返回一个新创建的内存存储器指针。
//參数block_size相应内存器中每一个内存块的大小,为0时内存块默认大小为64k(没设过大小,一直用的是默认0)。 g_storage = cvCreateMemStorage(0);
CvSeq* contours = 0;
//默认mode为list,method设定轮廓近似的方法
cvFindContours(g_gray, g_storage, &contours);
cvZero(g_gray); if (contours)
{
//maxlevel为1,就画同层的轮廓
cvDrawContours(g_gray, contours, cvScalarAll(255),cvScalarAll(255), 1);
} //释放内存资源
cvReleaseMemStorage(&g_storage);
cvShowImage("Countours", g_gray); cvWaitKey(0); } void main()
{
//以原始通道数读取图片1
img1 = cvLoadImage("D://vc6.0//MSDev98//MyProjects//MachineVision//TestPic//PeppersRGB.bmp",CV_LOAD_IMAGE_UNCHANGED);
g_gray = cvCreateImage(cvGetSize(img1), 8, 1);
//命名窗体
cvNamedWindow("Countours", CV_WINDOW_AUTOSIZE);
cvCreateTrackbar("Threshold", "Countours", &g_threshold, 100, on_trackbar);
on_trackbar(0);
cvWaitKey(0);
cvDestroyAllWindows(); }

本人对这一章学习兴趣不大。大致过了一下

OpenCV求取轮廓线的更多相关文章

  1. opencv求取RGB分量

    需要注意的是下面r,b,g的类型和顺序 须用IPL_DEPTH_8U类型创建图像且[0][1][2]分量分别是b,g,r. 另外多谢郑乾师兄帮我发现了IPL_DEPTH_8U问题 uchar r,b, ...

  2. OpenCV 最小二乘拟合方法求取直线倾角

    工业相机拍摄的图像中,由于摄像质量的限制,图像中的直线经过处理后,会表现出比较严重的锯齿.在这种情况下求取直线的倾角(其实就是直线的斜率),如果是直接选取直线的开始点和结束点来计算,或是用opencv ...

  3. 使用C#版OpenCV进行圆心求取

    OpenCVSharp是OpenCV的.NET wrapper,是一名日本工程师开发的,项目地址为:https://github.com/shimat/opencvsharp. 该源码是 BSD开放协 ...

  4. java 求取某一段时间内的每一天、每一月、每一年

    1.求取某一段时间内的每一天 Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-01" ...

  5. php自定义函数求取平方根

    <?phpfunction sqare($a, $left, $right){ $mid = ($left + $right)/2; if($mid * $mid == $a || (abs($ ...

  6. 摄像头脸部识别 (1)opencv 抓取视频数据并保存

    摄像头脸部识别 (1)opencv 抓取视频数据并保存 基于python 和 opencv 3.4.0 (兼容 opencv 2.X 参考注释),详细如代码 import numpy as np im ...

  7. oracle 当前年到指定年的年度范围求取

    如下面公式所示,求取2015到当前年(2018)的年度范围,当前年是由系统获取的,用到了sysdate和函数to_char,to_date. 当然,当前年也可以换成指定年份 SELECT TO_CHA ...

  8. poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数

    poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数 题目大意:如题目所示 给你一些关系图——连通图,想要问你有没有个节点,损坏后,可以生成几个互相独立的网络(也就是连通分量), ...

  9. python 库 Numpy 中如何求取向量范数 np.linalg.norm(求范数)(向量的第二范数为传统意义上的向量长度),(如何求取向量的单位向量)

    求取向量二范数,并求取单位向量(行向量计算) import numpy as np x=np.array([[0, 3, 4], [2, 6, 4]]) y=np.linalg.norm(x, axi ...

随机推荐

  1. 51nod 1035 最长的循环节 数学

    1035 最长的循环节 题目连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1035 Description 正整 ...

  2. linux基础命令学习(五)目录或文件权限

    一.查看文件的详情 ls -al 二.改变目录或文件的权限 chmod [-cfvR] [--help] [--version] mode file 1. 必要参数 -c 当发生改变时,报告处理信息 ...

  3. PHP 基础函数(三)数组和变量之间的转换

    extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;compact(var1,var ...

  4. 关于图表第三方Charts的一些理解与总结

    最近项目中用到了很多的图表,如柱状图,线状图,饼状图等等.接触到了一个新的第三方Charts,在做图方面确实非常强大,在使用了一段时间后,今天对他进行一个小的总结,也是自己的一点小理解. 关于char ...

  5. centos安装单机zookeeper

    1.下载zookeeper版本 wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz ...

  6. Wifi模块的工作原理

    http://www.wifitop1.com/news/content-98.html 在无线网络领域里面,无线wifi是最火的名词.对于串口wifi模块的工作是什么呢?串口wifi模块又有什么功能 ...

  7. DotNet.Utilities工具类

    来源:http://git.oschina.net/kuiyu/dotnetcodes/tree/master/DotNet.Utilities

  8. svn 冲突

    转载:http://blog.sina.com.cn/s/blog_65fd4c1e0100h2cg.html 1.  如何产生冲突 当开发人员A和开发人员B从版本库同时检出文档1.txt,而A和B同 ...

  9. [FireDAC][Phys][MySQL] MySQL server has gone away

    [FireDAC][Phys][MySQL]  MySQL server has gone away 原因: MYSQL等其它数据库,其本质上还是SOCKET服务端. 作为网络通信服务端都有一个机制— ...

  10. Epplus 设置excel 页边距 及多文件合并

    1:使用epplus合并多个excel文件到同一excel的不同sheet页中 private static bool MergeExcel(string _stFilePath, List<s ...