1. 程式人生 > >opencv日常學習之approxPolyDP函式和boundingRect函式說明

opencv日常學習之approxPolyDP函式和boundingRect函式說明

opencv中利用函式approxPolyDP來對指定的點集進行逼近,其逼近的精度是可設定的
對應的函式為:

void approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool closed);

InputArray curve:輸入的點集
OutputArray approxCurve:輸出的點集,當前點集是能最小包容指定點集的。draw出來即是一個多邊形;
double epsilon:指定的精度,也即是原始曲線與近似曲線之間的最大距離。
bool closed:若為true,則說明近似曲線是閉合的,它的首位都是相連,反之,若為false,則斷開。
該函式採用是Douglas-Peucker演算法來實現。code說明:

http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm
code原始碼:https://github.com/Itseez/opencv/tree/master/samples/cpp/contours2.cpp

opencv中利用函式boundingRect來對指定的點集進行包含,使得形成一個最合適的正向矩形框把當前指定的點集都框住

相關推薦

opencv日常學習approxPolyDP函式boundingRect函式說明

opencv中利用函式approxPolyDP來對指定的點集進行逼近,其逼近的精度是可設定的 對應的函式為: void approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilo

JavaScript的學習區域性變數區域性函式

JavaScript-區域性變數和區域性函式 一、區域性變數和全域性變數 首先,我們先來了解一下區域性變數和全域性變數的定義 區域性變數:在函式內,使用var定義的變數 全域性變數:在函式外定義的變數和在函式內不使用var定義的變數 需要注意的是: 如果區域性

C++學習分支語句邏輯運算子(if語句、邏輯表示式、字元函式庫(cctype)?:運算子)

1.當C++程式必須決定是否執行某個操作時,通常使用if語句來實現操作。if有兩種格式:if和if else. if(test-condition) statement 如果測試條件為true,則if語句將載入程式執行語句或語句塊;如果條件是false,程式將跳

oracle逐步學習總結oracle數字函式日期函式(基礎四)

  原創作品,轉自請註明出處:https://www.cnblogs.com/sunshine5683/p/10140716.html 繼上篇總結,繼續進行總結: 以下下數字函式: 1、abs(n):返回數字n的絕對值 2、acos(n):返回數字的反餘弦值 3、asin(n):返回數字

C++學習floor函式,ceil函式round函式

    做題時經常需要截斷小數點,向上取整或者向下取整,以前使用printf("%.2f",n);進行截斷操作,但如果資料不需要輸出,這種做法就行不通了,此時可以使用floor函式向下取整或者ceil函式向上取整。標頭檔案:#include<cmath>一.flo

STL學習十三:預定義函式函式介面卡

本文主要介紹預定義函式和函式介面卡。預定義好的函式物件,能實現不同型別的資料的運算, 實現了資料型別 和演算法的分離===》通過函式物件技術實現。下面是示例程式碼: #include "iostream" using namespace std; #include "ve

Python自動化3.0-------學習路------日期時間!

unix dst python自動化 相關 http -a 年份 字符串 cti Python 日期和時間 Python 程序能用很多方式處理日期和時間,轉換日期格式是一個常見的功能。 Python 提供了一個 time 和 calendar 模塊可以用於格式化日期和時間。

oracle學習基本查詢條件過濾,分組函數使用

pic sub 排序 acl date 數值 模糊查詢 使用 char oracle是殷墟出土的甲骨文的第一個單詞,所以在中國叫做甲骨文,成立於1977年,總部位於美國加州。 在安裝好後,主要有兩個服務需要開啟: 1,實例服務,OracleServiceORCL,決定是否可

shell學習變量引號

11.變量的概念:變量是程序中保存用戶的一塊內存空間,變量名就是這塊內存空間的地址,變量的值保存在計算機內存中。變量的定義:可以簡單的理解,變量就是內存中一個鍵值關系對,如下 A可以理解為其在內存中的地址,1為其具體的內容。 [root@node-2 ~]# A=1 [root@node-2 ~]# echo

jquery學習初始化獲取值

pan AS jquery UNC function jquery對象 加載 就會 獲取值 jquery在運行的時候 在界面加載完之後再加載jquery對象,jquery加載的元素就會被加載出來 $(document).ready(function(){  //這裏填寫需

小白的java學習路 “ 類對象”

之路 抽象 AS 類和對象 可維護 屬性和方法 style “.” 信息 一.※ 萬物皆對象 二.對象的兩個特征: 屬性:對象具有的各種特征 方法:對象執行的操作 對象:用來描述客觀事物的一個實體,由一組屬性和方法構成 三.

Linux學習十三-vivim編輯器及其快捷鍵

man 參考 AS 選擇 都是 常用 linu ins align vi和vim編輯器及其快捷鍵 1、vi與vim區別 它們都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅兼容vi的所有指令,而且還有一些新的特性在裏面。 vim的這些優勢主要體現在以下幾個方面:

Python學習路 —— *args **kwargs

轉載自部落格園: http://www.cnblogs.com/moodlxs/p/3232222.html 當函式的引數不確定時,可以使用*args 和**kwargs,*args 沒有key值,**kwargs有key值。 話不多說直接上程式碼 [python] de

JSP學習---運用useBeanjdbc操作。實現簡答前臺操作資料庫。

JSP學習之—運用useBean和jdbc操作。實現簡答前臺操作資料庫。 功能描述 1 . 在”student”表中查詢所有大於特定年齡的學生資訊,此年齡由使用者指定(提示,在網頁上面新增一個文字框用於使用者輸入年齡,然後根據使用者輸入的年齡建立sql語句,下面加一個按鈕,單擊按

C++PrimerPlus學習記憶體模型名稱空間

標頭檔案 如果檔名包含在尖括號中,則C++編譯器將在儲存標準標頭檔案的主機系統的檔案系統的中查詢。如果檔名包含在雙引號中,則編譯器將在當前目錄下查詢。 使用條件編譯防止多次包含標頭檔案 #ifndef XXX_H_ #define XXX_H_ ... #en

機器學習擬合過擬合問題

過擬合:當某個模型過度的學習訓練資料中的細節和噪音,以至於模型在新的資料上表現很差,我們稱過擬合發生了,通俗點就是:模型在訓練集中測試的準確度遠遠高於在測試集中的準確度。 過擬合問題通常發生在變數特徵過多的時候。這種情況下訓練出的方程總是能很好的擬合訓練資料,也就是說,我們的代價函式可能非常接近於0或者就為

opencv基礎教程 影象基礎繪圖

1,教程:感謝小強 2,用argparse傳引數來顯示一張圖片 #!/usr/bin/python #linux系統 #coding=utf-8 import cv2 import argparse #python很常用的一個自帶包 ap=argparse.ArgumentParse

C++學習筆記3_類.相關函式

1. 類*在C++中,struct和class沒有明顯差別,不同C#,class一定要new(手動開闢記憶體)出來struct Hero{ char name[64]; int sex;}void print(struct Hero &h){ ...}class AdvHero{ public: ch

python學習五(map,filter,reduce函式的使用)

map函式 我們首先使用原始的方法定義幾個功能函式來實現數字的加,減,平方運算。程式碼如下所示: def add(x): return x+1 def reduce(x): return x-1 def pf(x): return x**2 num_1=[1,2

機器學習---生成模型判別模型

  監督學習方法可分為兩大類,即生成方法與判別方法,它們所學到的模型稱為生成模型與判別模型。 判別模型:判別模型是學得一個分類面(即學得一個模型),該分類面可用來區分不同的資料分別屬於哪一類; 生成模型:生成模型是學得各個類別各自的特徵(即可看成學得多個模型),可用這些