2013-12-09 16 views
0

我需要自動分析許多類似圖像的分析,這些圖像是基本很多小黑色斑點,有點均勻的棕色背景上。Gimp的連續選擇工具的編程等效

我已經嘗試了simpleCV的find_blobs方法,但它不夠準確。然而,使用gimps連續選擇工具,也被稱爲魔術棒,我能夠在將背景與我的斑點分離時獲得更好的結果。

我的問題是我需要自動化這個過程,所以我不能讓一個人點擊每個圖像。我可以找到這個功能的Python友好庫的任何建議?在批處理模式下使用Gimp是唯一的方法嗎?

+1

連續選擇與許多圖像編輯程序提供的[洪水或種子填充](http://en.wikipedia.org/wiki/Flood_fill)操作非常相似。當然,區別在於像素被選中,而不是立即改變其顏色。我懷疑在Python中實現它是否可行,因爲它太慢了,但這基本上是一種算法,可以適應你的需求。 Gimp是開源的,所以理論上你可以用它作爲例子。 – martineau

回答

1

pdb.gimp_image_select_contiguous_color是程序化的方式 - 在Python插件 - 做魔杖。缺點是你必須發出合適的起始座標才能正常工作。 Maye在圖像的3個遠端重複這個過程,如果選擇不會在兩個方向上發生太大的偏差,那麼假定這是你想要的那個。

該過程不會返回選擇drawable,因此您必須通過發出 pdb.gimp_image_get_selection來獲取它。在調用它之前,您還需要調用pdb.gimp_context_set_sample_threshold來設置閾值。

(我的建議:把它複製到另一個,新形象,調整是一個8x8pixel圖像,從中可以得到的像素值且直接觸及做出其它選擇相比);

+0

謝謝joão,太糟糕了我不能在Gimp之外做到這一點。我會嘗試,也許我可以按顏色選擇點,因爲我的圖像都具有相同的背景。 – fccoelho

+0

您可以在GIMP之外執行此操作,但在GIMP中使用Python插件,您可以使用「類似服務器」的插件來打開一個映像,在其上運行幾個gimp-ops並保存該文件。例如,它可以通過簡單的Python xml-rpc進行試用 - 查看http://docs.python.org/2/library/simplexmlrpcserver.html – jsbueno

1

OpenCV可能是答案,this簡要教程可能會幫助你。 在這個例子中,它使用「模糊」使圖像更加均勻,如果它不夠,你可以嘗試erode and dilate

這些例子是C++,但OpenCV的Python綁定是真的類似於C++接口,所以你不應該有它翻譯任何問題。