我需要自動分析許多類似圖像的分析,這些圖像是基本很多小黑色斑點,有點均勻的棕色背景上。Gimp的連續選擇工具的編程等效
我已經嘗試了simpleCV的find_blobs方法,但它不夠準確。然而,使用gimps連續選擇工具,也被稱爲魔術棒,我能夠在將背景與我的斑點分離時獲得更好的結果。
我的問題是我需要自動化這個過程,所以我不能讓一個人點擊每個圖像。我可以找到這個功能的Python友好庫的任何建議?在批處理模式下使用Gimp是唯一的方法嗎?
我需要自動分析許多類似圖像的分析,這些圖像是基本很多小黑色斑點,有點均勻的棕色背景上。Gimp的連續選擇工具的編程等效
我已經嘗試了simpleCV的find_blobs方法,但它不夠準確。然而,使用gimps連續選擇工具,也被稱爲魔術棒,我能夠在將背景與我的斑點分離時獲得更好的結果。
我的問題是我需要自動化這個過程,所以我不能讓一個人點擊每個圖像。我可以找到這個功能的Python友好庫的任何建議?在批處理模式下使用Gimp是唯一的方法嗎?
pdb.gimp_image_select_contiguous_color
是程序化的方式 - 在Python插件 - 做魔杖。缺點是你必須發出合適的起始座標才能正常工作。 Maye在圖像的3個遠端重複這個過程,如果選擇不會在兩個方向上發生太大的偏差,那麼假定這是你想要的那個。
該過程不會返回選擇drawable,因此您必須通過發出 pdb.gimp_image_get_selection來獲取它。在調用它之前,您還需要調用pdb.gimp_context_set_sample_threshold
來設置閾值。
(我的建議:把它複製到另一個,新形象,調整是一個8x8pixel圖像,從中可以得到的像素值且直接觸及做出其它選擇相比);
OpenCV可能是答案,this簡要教程可能會幫助你。 在這個例子中,它使用「模糊」使圖像更加均勻,如果它不夠,你可以嘗試erode and dilate。
這些例子是C++,但OpenCV的Python綁定是真的類似於C++接口,所以你不應該有它翻譯任何問題。
連續選擇與許多圖像編輯程序提供的[洪水或種子填充](http://en.wikipedia.org/wiki/Flood_fill)操作非常相似。當然,區別在於像素被選中,而不是立即改變其顏色。我懷疑在Python中實現它是否可行,因爲它太慢了,但這基本上是一種算法,可以適應你的需求。 Gimp是開源的,所以理論上你可以用它作爲例子。 – martineau