Appleのカラー写真を持っていますが、python/PILでそのアウトライン(白の内側、背景の黒)だけを表示するにはどうすればよいですか?
このようなものが動作するはずです。
from PIL import Image, ImageFilter
image = Image.open('your_image.png')
image = image.filter(ImageFilter.FIND_EDGES)
image.save('new_name.png')
それでもあなたが探している結果が得られない場合は、Prewitt Edge検出、Sobel Edge検出、またはCanny Edge検出のいずれかをPILとPythonを使用して実装してみてください。他のライブラリは関連 question および次の example 。
エッジ検出だけでなく、粒子の検出/分析を行う場合は、 py4ij を使用して、リンクしたImageJメソッドを呼び出して期待どおりに呼び出すことができます同じ結果、または別のパーティクル分析Pythonライブラリ [〜#〜] eman [〜#〜] を試すか、パーティクルを記述できますPIL、SciPy、NumPyを使用した検出アルゴリズム。
オブジェクトと背景のコントラストがかなり良い場合
from PIL import Image
image = Image.open(your_image_file)
mask=image.convert("L")
th=150 # the value has to be adjusted for an image of interest
mask = mask.point(lambda i: i < th and 255)
mask.save(file_where_to_save_result)
より高いコントラストが(3色の)1つにある場合、イメージをグレースケールに変換する代わりに、バンドに分割することができます。
画像や背景がかなり複雑な場合は、より高度な処理が必要になります