我有一張蘋果的彩色照片,如何用python/PIL顯示其輪廓(內部白色,背景黑色)?使用python/PIL的圖像輪廓
回答
像這樣的東西應該工作。
from PIL import Image, ImageFilter
image = Image.open('your_image.png')
image = image.filter(ImageFilter.FIND_EDGES)
image.save('new_name.png')
如果不給你你正在尋找的,那麼你嘗試實現要麼普魯伊特邊緣檢測,Sobel邊緣檢測或Canny邊緣檢測使用PIL和Python等圖書館見相關question及以下example結果。
如果你正在嘗試做的粒子檢測/分析,而不僅僅是邊緣檢測,你可以嘗試使用py4ij給你打電話鏈接ImageJ的方法給你所期望的結果相同,或嘗試其它顆粒分析Python庫EMAN交替你可以使用PIL,SciPy和NumPy編寫粒子檢測算法。
嗨, 照片是彩色的,甚至當我灰化他們和運行過濾器它不能正常工作,因爲我只是想要蘋果形狀的輪廓,這有可能嗎? 它類似於rsbweb.nih.gov/ij/docs/pdfs/examples.pdf中描述的imageJ方法。 謝謝 – user1212200 2012-02-17 14:53:30
@ Appleman1234,非常感謝你提及我的文章。嘿,你可以導入Canny邊緣檢測模塊並運行它來單獨查找邊緣。輸出將是一個numpy的ndarray,但你可以使用im = Image.fromarray(imarray) – Vishwanath 2012-02-20 14:48:46
@Appleman將圖像轉換爲基於FIND_EDGES的組件分解成PIL圖像? – user1658296 2016-08-31 07:46:05
如果你的對象和背景都相當不錯對比
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. 圖像的輪廓軸
- 2. 使用openCV查找圖像輪廓
- 3. 使用R的輪廓圖
- 4. 從圖像生成輪廓
- 5. 提取外部輪廓或圖像的輪廓在Python
- 6. 每頁像輪廓
- 7. 檢測圖像中的文字輪廓
- 8. 圖像分割中的輪廓完成
- 9. DrawString與圖像中的輪廓
- 10. 查找圖像的輪廓Python OpenCV
- 11. 使用函數的輪廓圖
- 12. 在Python中使用遊行方塊使用圖像輪廓
- 13. 用matplotlib創建的輪廓使用opencv計算輪廓區域
- 14. 輪廓輪廓着色器
- 15. 輪廓圖OpenCV4Android庫
- 16. 動畫輪廓圖
- 17. 八度輪廓圖
- 18. 如何從輪廓恢復圖像?
- 19. 將圖像放入輪廓(OpenCV)
- 20. 在圖像上搜索輪廓
- 21. python庫查找圖像輪廓
- 22. 找到輪廓後Opencv圖像扭曲
- 23. 獲取輪廓圖像Linkedin在Rails
- 24. 如何爲圖像添加輪廓?
- 25. 在圖像上顯示輪廓?
- 26. 在圖像頂部顯示輪廓
- 27. 扭曲圖案像輪廓織物
- 28. OpenGL ES着色器輪廓2D圖像
- 29. 將輪廓保存爲圖像
- 30. 圖像輪廓點生成器?
包括預期輸入的一些樣本圖像。 – mmgp 2012-12-15 20:00:24