===解決===簡單的物體識別
感謝您的建議和意見。通過編寫Beginning Python Visualization書(第9章 - 圖像處理)中給出的flood_fill算法,我已經實現了我想要的。我可以計算對象,爲每個對象(因此是高度和寬度)獲取包圍矩形,最後可以爲每個對象構建NumPy數組或矩陣。
雖然它不是一個優化的方法,但它做我想要的。我使用的源代碼(lab2.py)和png文件(lab2-particles.png)已被置於http://code.google.com/p/ccnworks/source/browse/#svn/trunk/AtSc450之下。
您需要安裝NumPy和PIL,並使用matplotlib來查看直方圖。代碼的核心在於發生主要遞歸對象搜索操作的objfind函數內。
一個進一步的更新:
SciPy的的ndimage.label()不正是我想要的東西,太。
乾杯大衛 - 沃德法利和扎卡里平從與NumPy和SciPy的郵件列表指出這直接進入我的眼睛:)
=========== ==
您好,
我有一個包含由粒子光譜儀測量冰顆粒的陰影的圖像。我希望能夠識別每個對象,以便以後可以在我的計算中對它們進行分類和使用。
本質上,我願意做的只是簡單地實現一個模糊選擇工具,我可以簡單地選擇每個實體。
我怎麼能輕鬆解決這個問題? (最好使用Python)
謝謝。
注:在我的問題中,我指的是每個特定的連接像素作爲對象或實體。我打算提取它們並創建NumPy數組表示,如下所示。 (這裏我使用左上角的對象;如果存在像素,則使用1,如果不使用0,則該對象的形狀爲3乘3,相應地3像素高3像素寬,這是真實冰粒在2D域上的投影,其爲球形和等效半徑的假設下是(高度+寬度)/ 2,和後來一些定標--from像素實際尺寸和體積計算將遵循)
import numpy as np
np.array([[1,1,1], [1,1,1], [0,0,1]])
array([[1, 1, 1],
[1, 1, 1],
[0, 0, 1]])
下面是從一個部我將要使用的圖像。
screenshot http://img43.imageshack.us/img43/2327/particles.png
對我而言,簡單的對象識別聽起來像是一個矛盾。 – Joren 2009-09-19 18:14:25
你會建議什麼? – 2009-09-19 18:42:49
請不要在你的問題中說「解決」。要麼接受最佳答案,要麼回答自己的問題並接受。 – Soviut 2012-04-03 23:52:24