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,...