我想在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)
見PIL Tutorial下點運算走向更多資料。
2
我認爲最簡單的方法是使用Mahotas library,它可以讓你把圖像加載到NumPy程序。然後你可以在你的圖像上使用邏輯索引。
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,那麼你應該在PIL中尋找可以將圖像轉換爲NumPy數組的函數,然後上面的代碼仍然可以工作。
總的來說,我總是有一致的問題讓PIL真正的工作。似乎總會有某種圖像文件類型支持問題,某些解碼器問題,或其他一些PIL出錯的問題。這非常挑剔。出於同樣的原因,我通常會盡量避免使用Python-OpenCV。我更喜歡scikits.learn,scikits.image,Mahotas和PyPNG的工作流程。
相關問題
- 1. 基於顏色的圖像分割
- 2. 使用MATLAB刪除圖像的特定顏色邊緣部分
- 3. 使用PIL過濾部分圖像,python
- 4. 刪除顏色表的一部分
- 5. Python PIL比較顏色
- 6. Python的PIL裁剪問題:裁剪圖像的顏色扭曲
- 7. 如何用PIL(Python-Imaging)反轉圖像的顏色?
- 8. 更改圖像部分的顏色
- 9. 圖像的填充(顏色)部分
- 10. 刪除圖像中的所有特定顏色(顏色範圍)?
- 11. 通過顏色排除圖像的一部分
- 12. PIL:創建圖像顏色亮度的一維直方圖?
- 13. ScrollView刪除基於位置的圖像
- 14. 隨機刪除部分圖像/像素
- 15. 用OpenCV刪除圖像的部分
- 16. 刪除從位圖圖片的顏色?
- 17. PIL jpeg,如何保留像素顏色
- 18. 基於顏色直方圖的圖像搜索
- 19. 刪除基於子在Python
- 20. 使ImageView以不同顏色顯示圖像的黑色部分
- 21. 從圖像中刪除選定的顏色(灰度圖形)
- 22. 試圖改變圖像中的透明部分的顏色
- 23. 顏色基於數
- 24. python - opencv morphologyEx刪除特定顏色
- 25. 基於值的顏色matplotlib條形圖
- 26. 刪除圖像的藍色和綠色
- 27. 將圖像/圖案應用於餡餅部分而不是普通的顏色
- 28. 用Python打開圖像PIL
- 29. Python PIL圖像複製
- 30. Python PIL圖像保存