转自:http://blog.csdn.net/gnuhpc/archive/2009/06/18/4278105.aspx

<>var ultimaFecha = ' '; <>document.write(ultimaFecha); #include "highgui.h"
#include "cv.h"
#include <iostream>
#include <iomanip>

using namespace std;

int main(void)
{
    int i=0;
    int mode = CV_RETR_CCOMP;//设置提取轮廓模式
    int contours_num=0;//提取轮廓的数目
    CvScalar external_color;//绘制轮廓线的颜色
    CvScalar hole_color;
    CvMemStorage *storage = cvCreateMemStorage(0);
    CvSeq *contours =0;//存储提取的轮廓图像

IplImage *pImg = NULL;
    IplImage *pContourImg = NULL;//显示提取的轮廓图像
    IplImage *src=/blog.armyourlife.info/cvLoadImage("1.png",1);

pImg = cvCreateImage(cvGetSize(src),src->depth,1);
    pContourImg =cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,3);
    cvCvtColor(src,pImg,CV_BGR2GRAY);//将读取的图像转化为灰度图像
    cvNamedWindow("src",1);
    cvNamedWindow("contour",1);
    cvShowImage("src",src);//显示原图
    cvThreshold(pImg,pImg,200,255,CV_THRESH_BINARY);//二值化
    mode = CV_RETR_LIST;
    contours_num=cvFindContours(pImg,storage,&contours,sizeof(CvContour),mode,CV_CHAIN_APPROX_NONE);
    cout<<contours_num<<" "<<endl;//打印找到的轮廓的数目
    for (;contours!=0;contours=contours->h_next)
    {
        hole_color=CV_RGB(rand()&255,rand()&255,rand()&255);
        external_color = CV_RGB(rand()&255,rand()&255,rand()&255);
        cvDrawContours(pContourImg,contours,external_color,hole_color,1,2,8);
    }

cvShowImage("contour",pContourImg);
    cvWaitKey(0);
    cvReleaseImage(&src);
    cvReleaseImage(&pImg);
    cvReleaseImage(&pContourImg);
    cvReleaseMemStorage(&storage);
}

图像轮廓的提取和绘制相关推荐

  1. 使用matlab对图像轮廓进行提取

    原图 首先将图片导入matlab工作区 图片将会被转换为一个二维矩阵存=存放 然后我们输入指令可以看到原图 然后转为二值图像使用bwperim()函数进行轮廓提取 同样我们可以借助edge()函数进行 ...

  2. matlab 提取图像轮廓(图像边缘提取)

    利用edge()函数提取图像轮廓,绘制出对象的边界和提取边界坐标信息,matlab实现代码如下: close all;clear all;clc; % 提取图像轮廓,提取图像边缘 I = imread ...

  3. 图像轮廓提取算法(Opencv基于C++实现)

    Opencv图像轮廓提取 0. 实现结果如下: 1. 打开图像代码 2. 轮廓提取函数 3. 代码实现 本文主要实现了图像的轮廓提取,首先先给出直观的轮廓实现结果: 0. 实现结果如下: 1. 打开图 ...

  4. Python机器视觉--OpenCV进阶(核心)--图像轮廓查找识别,绘制图像轮廓与图像轮廓的面积周长计算

    1.图像轮廓查找识别与绘制图像轮廓 1.1 什么是图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用. 轮廓的作用: 用于图形分析 物体的识别和检测 注意 ...

  5. MATLAB应用实战系列(四十五)-matlab任意图形轮廓坐标提取【含源代码】

    细心的伙伴不难发现上图的每个图形外面都画了一圈黑色虚线,不错,这些虚线就是根据图形轮廓提取的图像坐标绘制的. 之前有伙伴在咱们的QQ交流群中询问有关图像轮廓坐标提取的问题,今天就给大家念叨念叨. 今天 ...

  6. 基于OpenCV实战:绘制图像轮廓(附代码)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 山区和地形图中海拔高的区域划出的线称为地形轮廓,它们提供了地形的高 ...

  7. opencv 绘制图像轮廓

    图像轮廓概念 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形. 谈起轮廓不免想到边缘,它们确实很像.简单的说,轮廓是连续的,边缘并不全都连续(下图).其实边缘主要是作为图像的特征使用,比如可以用 ...

  8. openCV专栏(八):图像轮廓:绘制轮廓

    OPENCV基础操作 提示:本专栏所用版本仅供参考,其他版本也可 库 版本 python Python 3.9.3 opencv 4.5.5 matplotlib 3.4.3 numpy 1.19.5 ...

  9. OPENCV之寻找并绘制轮廓以及提取轮廓重心坐标

    OPENCV之寻找并绘制轮廓以及提取轮廓重心坐标 1.寻找轮廓 声明:在寻找图像轮廓之前需要对图像进行阈值分割或者Canny.拉普拉斯等边缘检测算子处理. 寻找轮廓的算子: findContours( ...

最新文章

  1. TestLink学习七:TestLink测试用例Excel转换XML工具
  2. java中判断字符串是否为数字的三种方法
  3. 深入理解CSS3 Animation 帧动画
  4. 微軟 ASP.NET 2.0 的 AJAX 利劍 ~ Atlas Framework
  5. 编写优美的GTest测试案例
  6. java中intvalue_Java Byte类intValue()方法的示例
  7. netty的使用部署
  8. 那些拆中台的CTO,70%被裁了
  9. QT ListView 记录
  10. 3.5mm 音频接口类型说明
  11. 通过精读一本英文技术书籍搞定英语
  12. 图片和边框的距离调整html,css图片如何设置上边框距离
  13. 屏蔽CSDN广告插件 - Chrome
  14. Windows电脑如何控制安卓手机
  15. 黑暗爆炸 #1059. [ZJOI2007]矩阵游戏
  16. 国外问卷调查是骗人的吗?
  17. Github上8个很棒的React项目
  18. 移动端H5(JavaScript)识别二维码功能
  19. vw 前端_px转vw和vh的工具(对前端同学有用)
  20. Linux就该这么学--第五期 学习笔记

热门文章

  1. 基于EMQ X,打造AIoT物联网视频接入解决方案
  2. 4. 编程规范和编程安全指南--go语言
  3. 数据结构与算法(2-1)线性表之顺序存储(顺序表)
  4. R6010-abort() has been called,Error openning file ../../modules/highgui/src/cap_ffmpeg_impl.hpp解决方法
  5. java保存多张图片格式_从多个URL下载多个图像文件并保存到本地计算机(使用R)...
  6. python实现数据库查询_通过Python实现mysql查询数据库实例
  7. 16 分频 32 分频是啥意思_Verilog中任意分频的实现
  8. 抖音的标题写什么内容_看了这篇文章,我才真正明白什么才是英语速成之路!感恩...
  9. 在macOS 10.13.6上安装go 1.13.8实录
  10. LTE - PRACH 时频资源介绍