pythonでPILを使用して、ピクセルRGB値に基づいて画像の一部を削除しようとしています。ドキュメントから、私が探しているものを機能ポイントが実行できるように見えます。しかし、私はドキュメントの後に苦労しています。青の値が100未満のすべてのピクセルを白に変更したい場合、これを達成する最も簡単な方法は何ですか?Python PILは画像の部分を色に基づいて削除します
2
A
答えて
1
何かが働くだろう:
source = im.split()
mask = source[2].point(lambda i: i < 100 and 255)
im = Image.merge(im.mode, source)
は、より多くのINFOMATIONに向かっ小数点演算下PIL Tutorialを参照してください。
2
これを行う最も簡単な方法は、Mahotas libraryを使用して、NumPy ndarraysとして画像を読み込むことです。それでは、イメージ上で論理インデックスを使用するだけです。
import Mahotas as mh
import numpy as np
fname = "/home/stuff/images/my_image.jpg"
image = mh.imread(fname)
# Make a copy to play with the indices.
img = np.copy(image)
# Replace places with 3rd coordinate less than 100 with the white-color
# vector [255, 255, 255].
inds = img[:,:,2] < 100
img[inds] = [255,255,255]
利点はMahotasは、右あなたが簡単にnumpyの一貫性のある構文で異なる寸法をスライスすることができますnumpyの配列に画像をロードすることです。また、PILでイメージI/Oを実際に実行したい場合は、イメージをNumPy配列に変換するPILの関数を探して、上記のコードは引き続き機能します。
しかし、私はいつもPILが真に働くように一貫した問題を抱えてきました。画像ファイルタイプサポートの問題、デコーダの問題、PILの問題などがあるようです。それは非常に難解です。私は一般的に同じ理由でPython-OpenCVを避けるようにしています。私はscikits.learn、scikits.image、Mahotas、PyPNGのワークフローを好む。次のような
関連する問題
- 1. PHPは部分タグに基づいて画像を削除します
- 2. WEB上のURLに基づいて画像を削除する
- 3. 部分ヘッダーパターンに基づいて.csv列を削除する
- 4. カラーピッカーに基づいて画像の色を変更します
- 5. PowerShellを使用して寸法に基づいて画像を削除する
- 6. ボックスシャドウの色は画像の色に基づいていますか?
- 7. 画像から黒い部分を削除するには?
- 8. 合計の部分に基づいてパンダのデータフレームの行を削除する
- 9. データを削除するには:base64の画像部分
- 10. スライダー画像の色合いに基づいてメニューの色を変更する
- 11. WPFのTextBox Focusに基づいて画像の色を変更しますか?
- 12. PIL、pythonを使用した画像の一部をフィルタリングする
- 13. jQueryが部分一致に基づいて、アレイからエントリを削除
- 14. セルの一部の値に基づいて行全体を削除します
- 15. Python PIL画像の再現
- 16. パイプPIL画像 - Pythonの
- 17. OpenCV Pythonは画像のある部分を別の画像にコピーします
- 18. jQueryリセット画面サイズに基づいてヘッダーのパディングを削除します。
- 19. Tkinter Python - Comboxbox条件に基づいてウィジェットを削除する
- 20. Pythonは、キーワードに基づいてテキストファイルを分割します。
- 21. Python Djangoタブに基づいて画像をロードする
- 22. ドロップボックスの選択に基づいてテキストボックスを削除/削除します
- 23. JavaScriptの3D画像の部分の色を変更します
- 24. オブジェクトキーの部分文字列に基づいてS3オブジェクトを検索/削除します
- 25. ユーザーグループメンバーシップに基づいてテーブルの列を削除します
- 26. セルの値に基づいて行を削除します
- 27. モデルに基づいてUIButtonの画像を更新します
- 28. コンテンツに基づいて画像をソート
- 29. MySQLは、値に基づいて、各顧客のタイムスタンプに基づいて行を削除します。
- 30. 部分的複合IDに基づいてHibernate 5.xレコードを削除しますか?