1

我有很多灰度圖像,因爲我必須提取用於比較的特徵。 我如何計算opencv中的形狀伸長(基本形狀描述符:http://www.site.uottawa.ca/~mstoj075/Publications_files/elongation-JMIV.pdf)(用於python版本)以進行特徵提取?它如何計算opencv中的形狀伸長?

樣本圖像:1)https://docs.google.com/file/d/0ByS6Z5WRz-h2cE1wTGJwRnE5YUU/edit 2)https://docs.google.com/file/d/0ByS6Z5WRz-h2UTFCaVEzaHlXRVk/edit 3)https://docs.google.com/file/d/0ByS6Z5WRz-h2NDgySmJ6NnpId0U/edit

+0

請您詳細說明一下嗎?例如,包括一些圖像,說明你的問題?你究竟是什麼意思的形狀伸長? – sietschie

+0

[在python opencv中檢索伸長特徵,它應該使用什麼樣的時刻?](http://stackoverflow.com/questions/14854592/retrieve-elongation-feature-in-python-opencv-what- – mmgp

回答

1

描述符(形狀矩)通過遍歷一個特定的形狀創建,並且可以或可以不使用的像素值。一般形式是這樣的

cvFindContours() 
Accumulator = 0; 
for (each pointx in the contour bounding box) 
for (each pointy in the contour bounding box) 
{ 
    if (cvPointPolygonTest((pointx,pointy),mycontour)) //ie the point is not only in the bounding box, but in the actual contour 
     Accumulator = Accumulator + MyDescriptor(point,ImageValueAt(point)); 
} 

累加器將包含您的形狀描述符值。 我無法讀取您的pdf,但第一頁上的這些積分轉化爲您的雙循環。

+0

輪廓我已經與輪廓,hierarchy = cv2.findContours(imgbnbin,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)我必須改變與CV_CHAIN_APPROX_NONE嗎?什麼是MyDescriptor?一個函數? – postgres

+0

鏈近似無關緊要。 MyDescriptor是描述符的詳細信息,如果您例如計算區域(這是描述符),MyDescriptor()將始終返回1. –

+0

只需計算簡單的描述符,例如面積,重力矩等,然後然後就像在他的論文中那樣複雜的......很明顯,你需要一些練習。 –