opencv學習篇(3)snake輪廓檢測

2021-07-06 09:56:35 字數 1475 閱讀 5851

opencv例子裡沒有提供cvsnakeimage的使用方法,在此整理乙個例子,可以形象的看看snake演算法的結果,大致做法是:

首先設定域值分割,把基本的輪廓找出來,見圖中藍色輪廓線,再將輪廓點傳入cvsnakeimage函式,計算出綠色的snake輪廓線。

其中引數alpha代表點相互靠攏的權值(0-1.0),beta表示彎曲能量(越小越容易彎曲)(0-1.0),gamma表示整體能量(0-1.0)。其中引數我自己也不確定具體的範圍,最好自己更改不同的範圍試試.

程式執行結果

// trainingtools.cpp : 定義控制台應用程式的入口點。// 

#include "stdafx.h"

#include

#include

#include

#include

#include

#include   

iplimage *image =0;

//原始影象

iplimage *image2 =0;

//原始影象copy

using namespace std;

int thresholdness =

141;

int ialpha =20;

int ibeta=20;

int igamma=20;

void onchange(

int pos)

cvreleasememstorage(

&storage)

;//顯示輪廓曲線

for(int i=

0;i)float alpha=ialpha/

100.0f

;float beta=ibeta/

100.0f

;float gamma=igamma/

100.0f;  

cvsize size;

size.width=3

; size.height=3

; cvtermcriteria criteria;

criteria.type

=cv_termcrit_iter;

criteria.max_iter

=1000

; criteria.epsilon

=0.1

; cvsnakeimage( image, point,length,&alpha,&beta,&gamma,cv_value,size,criteria,0)

;//顯示曲線

for(int i=

0;i) delete [

]point;

}int main(

int argc,

char

* argv)

return0;

}

opencv學習 3 濾波總結

最大值濾波可以去除影象中的暗斑,同時也會使亮斑增大 最小值濾波可以去除影象中的亮斑,同時也會增大暗斑 濾波處理分為兩大類 線性濾波和非線性濾波。opencv裡有這些濾波的函式,使用起來非常方便,現在簡單介紹其使用方法。線性濾波 方框濾波 均值濾波 高斯濾波 均值濾波 均值濾波就是方框濾波的乙個特殊情...

OpenCV3學習總結

影象處理技術一般包括影象壓縮,增強和復原,匹配 描述和識別3個部分。影象處理和計算機視覺的區別在於 影象處理側重於 處理 影象 如增強 還原 去噪 分割等 而計算機視覺重點在於使用計算機來模擬人的視覺。opencv由一系列c函式和c 類構成,擁有包括500多個c函式的跨平台的中高層api。openc...

opencv3學習 reshape函式

在opencv中,reshape函式比較有意思,它既可以改變矩陣的通道數,又可以對矩陣元素進行序列化,非常有用的乙個函式。函式原型 c mat mat reshape int cn,int rows 0 const引數比較少,但設定的時候卻要千萬小心。cn 表示通道數 channels 如果設為0,...