CV參考手冊

2022-11-27 03:09:07 字數 4892 閱讀 8962

hunnish 注:

本翻譯是直接根據 opencv beta 4.0 版本的使用者手冊翻譯的,原檔案是:/doc/ref/opencvref_ 可以從 sourceforg 上面的 opencv 專案**,也可以直接從阿須數碼中**:

翻譯中肯定有不少錯誤,另外也有些術語和原文語義理解不透導致翻譯不準確或者錯誤,也請有心人賜教。

影象處理、結構分析、運動分析和物件跟蹤部分由翻譯,模式識別、照相機定標與三維重建部分由翻譯,全文由統一修改校正。

影象處理

梯度, 邊緣和角點

取樣差值和幾何變換

形態學操作

濾波和彩色變換

金字塔及其應用

連線元件

影象和輪廓矩

特殊影象變換

直方圖匹配 結構分析

輪廓處理

計算幾何

平面劃分

運動分析和物件跟蹤

背景統計量的累積

運動模板

物件跟蹤

光流 預估器

模式識別

目標檢測

照相機定標和三維重建

照相機定標

姿態估計

極線幾何

函式列表

參考 影象處理

注意:本章描述影象處理和分析的一些函式。其中大多數函式都是針對兩維象素數組的,這裡,我們稱這些陣列為「影象」,但是它們不一定非得是iplimage 結構,也可以是cvmat或者cvma***結構。

梯度、邊緣和角點

sobel

使用擴充套件 sobel 運算元計算一階、二階、三階或混合影象差分

void cvsobel( const cvarr* src, cvarr* dst, int xorder, int yorder, int aperture_size=3 );

src輸入影象.

dst輸出影象.

xorder

x 方向上的差分階數

yorder

y 方向上的差分階數

aperture_size

擴充套件 sobel 核的大小,必須是 1, 3, 5 或 7。 除了尺寸為 1, 其它情況下, aperture_size ×aperture_size 可分離核心將用來計算差分。對 aperture_size=1的情況, 使用 3x1 或 1x3 核心 (不進行高斯平滑操作)。

這裡有乙個特殊變數 cv_scharr (=-1),對應 3x3 scharr 濾波器,可以給出比 3x3 sobel 濾波更精確的結果。scharr 濾波器係數是:

| -3 0 3|

|-10 0 10|

| -3 0 3|

對 x-方向以及轉置矩陣對 y-方向。

函式 cvsobel 通過對影象用相應的核心進行卷積操作來計算影象差分:

dst(x,y) = dxorder+yodersrc/dxxorderdyyorder |(x,y)

由於sobel 運算元結合了 gaussian 平滑和微分,所以,其結果或多或少對雜訊有一定的魯棒性。通常情況,函式呼叫採用如下引數 (xorder=1, yorder=0, aperture_size=3) 或 (xorder=0, yorder=1, aperture_size=3) 來計算一階 x- 或 y- 方向的影象差分。第一種情況對應:

|-1 0 1|

|-2 0 2|

|-1 0 1|

核。第二種對應

|-1 -2 -1|

| 0 0 0|

| 1 2 1|

or | 1 2 1|

| 0 0 0|

|-1 -2 -1|

核的選則依賴於影象原點的定義 (origin 來自 iplimage 結構的定義)。由於該函式不進行影象尺度變換,所以和輸入影象(陣列)相比,輸出影象(陣列)的元素通常具有更大的絕對數值(譯者注:即象素的深度)。

為防止溢位,當輸入影象是 8 位的,要求輸出影象是 16 位的。當然可以用函式函式 cvconvertscale 或 cvconvertscaleabs 轉換為 8 位的。除了 8-位元影象,函式也接受 32-位浮點數影象。

所有輸入和輸出影象都必須是單通道的,並且具有相同的影象尺寸或者roi尺寸。

laplace

計算影象的 laplacian變換

void cvlaplace( const cvarr* src, cvarr* dst, int aperture_size=3 );

src輸入影象.

dst輸出影象.

aperture_size

核大小 (與 cvsobel 中定義一樣).

函式 cvlaplace 計算輸入影象的 laplacian變換,方法是先用 sobel 運算元計算二階 x- 和 y- 差分,再求和:

dst(x,y) = d2src/dx2 + d2src/dy2

對 aperture_size=1 則給出最快計算結果,相當於對影象採用如下核心做卷積:

|0 1 0|

|1 -4 1|

|0 1 0|

類似於 cvsobel 函式,該函式也不作影象的尺度變換,所支援的輸入、輸出影象型別的組合和cvsobel一致。

canny

採用 canny 演算法做邊緣檢測

void cvcanny( const cvarr* image, cvarr* edges, double threshold1,

double threshold2, int aperture_size=3 );

image

輸入影象.

edges

輸出的邊緣影象

threshold1

第乙個閾值

threshold2

第二個閾值

aperture_size

sobel 運算元核心大小 (見 cvsobel).

函式 cvcanny 採用 canny 演算法發現輸入影象的邊緣而且在輸出影象中標識這些邊緣。threshold1和threshold2 當中的小閾值用來控制邊緣連線,大的閾值用來控制強邊緣的初始分割。

precornerdetect

計算用於角點檢測的特徵圖,

void cvprecornerdetect( const cvarr* image, cvarr* corners, int aperture_size=3 );

image

輸入影象.

corners

儲存候選角點的特徵圖

aperture_size

sobel 運算元的核大小(見cvsobel).

函式 cvprecornerdetect 計算函式 dx2dyy+dy2dxx - 2dxdydxy 其中 d? 表示一階影象差分,d?? 表示二階影象差分。

角點被認為是函式的區域性最大值:

// 假設影象格式為浮點數

iplimage* corners = cvcloneimage(image);

iplimage* dilated_corners = cvcloneimage(image);

iplimage* corner_mask = cvcreateimage( cvgetsize(image), 8, 1 );

cvprecornerdetect( image, corners, 3 );

cvdilate( corners, dilated_corners, 0, 1 );

cvsubs( corners, dilated_corners, corners );

cvcmps( corners, 0, corner_mask, cv_cmp_ge );

cvreleaseimage( &corners );

cvreleaseimage( &dilated_corners );

cornereigenvalsandvecs

計算影象塊的特徵值和特徵向量,用於角點檢測

void cvcornereigenvalsandvecs( const cvarr* image, cvarr* eigenvv,

int block_size, int aperture_size=3 );

image

輸入影象.

eigenvv

儲存結果的陣列。必須比輸入影象寬 6 倍。

block_size

鄰域大小 (見討論).

aperture_size

sobel 運算元的核尺寸(見 cvsobel).

對每個象素,函式 cvcornereigenvalsandvecs 考慮 block_size × block_size 大小的鄰域 s(p),然後在鄰域上計算影象差分的相關矩陣:

| sums(p)(di/dx)2 sums(p)(di/dxdi/dy)|

m | sums(p)(di/dxdi/dy) sums(p)(di/dy)2 |

然後它計算矩陣的特徵值和特徵向量,並且按如下方式(λ1, λ2, x1, y1, x2, y2)儲存這些值到輸出影象中,其中

λ1, λ2 - m 的特徵值,沒有排序

(x1, y1) - 特徵向量,對 λ1

(x2, y2) - 特徵向量,對 λ2

cornermineigenval

計算梯度矩陣的最小特徵值,用於角點檢測

void cvcornermineigenval( const cvarr* image, cvarr* eigenval, int block_size, int aperture_size=3 );

image

輸入影象.

eigenval

儲存最小特徵值的影象. 與輸入影象大小一致

block_size

鄰域大小 (見討論 cvcornereigenvalsandvecs).

aperture_size

sobel 運算元的核尺寸(見 cvsobel). 當輸入影象是浮點數格式時,該引數表示用來計算差分固定的浮點濾波器的個數.

SQL語法參考手冊

瀏覽統計 total 18049 year 18049 quarter 18049 month 5956 week 867 today 10 第 1 頁 sql 語法參考手冊 1 第 2 頁 sql 語法參考手冊 2 第 3 頁 sql 語法參考手冊 3 db2 提供了關連式資料庫的查詢語言 str...

SQL語法參考手冊

分類 資料庫應用 通用資料庫應用 db2提供了關連式資料庫的查詢語言 structured query language 是一種非常口語化 既易學又易懂的語法。此一語言幾乎是每個資料庫系統都必須提供的,用以表示關連式的操作,包含了資料的定義 以及資料的處理 sql原來拼成sequel,這語言的原型以...

APQP CP參考手冊培訓試題

部門姓名 得分一 填空題 10 3分 1 apqp cp參考手冊中文含義是產品質量先期策劃和控制 計畫 其目的是為新產品和更改產品作批量生產前 準備工作。2 apqp cp參考手冊最新版本是 1994 年 6 月發布的,是第一版。3 apqp小組應由技術 製造 材料控制 採購 質量 銷售等部門人員參...