snake model公式的推導位址
opencv中cvsnakeimage()函式**分析
位址
opencv函式庫中的cvsnakeimage函式更新snake用於最小化它的總能量,並在梯度能量場情況下的,使其對應影象邊緣的區域性能量極值達到最小。它的能量包括依賴於輪廓形狀的內部能量(輪廓越平滑,能量越小),依賴於能量場的外部能量。
void cvsnakeimage( const iplimage* image, cvpoint* points, int length,
float* alpha, float* beta, float* gamma, int coeff_usage,
cvsize win, cvtermcriteria criteria, int calc_gradient=1 );
image
原影象或external energy field。
points
輪廓點(snake)。
length
輪廓中點的數目。
alpha
連續性能量(continuity energy)的權重,乙個浮點數,或者每個輪廓點對應乙個的浮點數數字。
beta
曲率能量(curvature energy)的權重,類似alpha
gamma
影象能量(image energy)的權重,類似alpha。
coeff_usage
前三個引數使用方式的設定變數:
cv_value 說明前面的alpha,beta,gamma是乙個指向乙個單獨值的指標,每個輪廓點都是用這一相同的引數;
cv_array 說明alpha,beta,gamma是乙個陣列,每乙個輪廓點(snake)都對應自己的一組alpha,beta,gamma值,因此,三個引數的元素個數必須和輪廓點尺寸相同;
win
每個點用於搜尋最小值的鄰居的範圍,win.width和win.height都必須為奇數;
criteria
終止標準;
calc_gradient
梯度標誌。如果非0,函式計算每個影象畫素的梯度大小,並將之作為能量場;否則,輸入影象本身作為能量場考慮。
引數criteria.epsilon用於定義每次迭代必須移動的最小點的數目,用於確保迭代處理執行。如果某次迭代,移動的點數少於criteria.epsilon或函式執行達到了criteria.max_iter,函式終止。
**測試:先在影象中繪製出初始輪廓,再按s鍵進行輪廓提取,裡面的引數設定得不是最好,可以按照不同的應用進行優化調整
#include
#include
#include
#pragma comment(lib, "cv200.lib")
#pragma comment(lib, "highgui200.lib")
#pragma comment(lib, "cxcore200.lib")
std::vector contourvec;
iplimage* tempimg;
void showcontent(iplimage* img)
cvshowimage("srcimage", tempimg);
}void on_mouse(int event, int x, int y, int flags, void* ptr) }
int main(int argc, char* argv)
cvnamedwindow("srcimage");
cvshowimage("srcimage",srcimage);
cvsetmousecallback("srcimage", on_mouse, srcimage);
char c;
while(c = cvwaitkey(0))
if (c == 's' || c == 's')
break;
float alpha=0.5;
float beta=0.3;
float gamma=0.3;
cvsize size;
size.width=5;
size.height=5;
cvtermcriteria criteria;
criteria.type=cv_termcrit_iter;
criteria.max_iter=300;
criteria.epsilon=0.01;
if (contourvec.empty()) return 0;
cvsnakeimage(srcimage, &contourvec[0], contourvec.size(), &alpha, &beta, &gamma, cv_value, size, criteria, 1);
showcontent(srcimage);
cvwaitkey(0);
SEO競爭對手分析終極策略
雖然我們很多朋友是專業的seoer,但在做seo競爭對手分析時,肯定也會很頭疼的,特別是遇到一些非常規的競爭對手,明明收錄量不大,快照更新滯後,外鏈不多,但又排得非常好的 就更覺得頭疼,筆者現在做的 推廣,關鍵詞是 珠海 建設 都是行內高手對他們進行seo競爭對手分析更是頭疼,今天我們就系統性的從常...
終極演算法 2 終極演算法
機器學習的應用非常廣泛,更為驚人的是,相同的演算法可以完成不同的事。在機器學習領域之外,如果你要解決不同的問題,就得編寫兩個不同的程式。相同的機器學習演算法不僅可以完成無窮無盡且不同的事,而且和被它們替代的傳統演算法相比,它們要簡單得多。多數學習演算法可能只有數百行或者數千行。相比之下,傳統程式則需...
化繁為簡的終極指南化繁為簡的終極指南
你是否已經接受了化繁為簡的趨勢,並準備好踏上這波浪潮了?很好,遵循這些指南,你馬上就會創造出優秀的應用。去除彩色。當然,你可以保留一種顏色,但要極度克制地使用它。其他一切最好是黑白的。讓內容來為應用填充顏色。加大 加粗 加黑的標題。看到標題了嗎?把它加到20至30畫素,並且加重。簡潔 纖細 易辨識的...