我有一张苹果的彩色照片,如何用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. DrawString与图像中的轮廓
- 5. 查找图像的轮廓Python OpenCV
- 6. 使用函数的轮廓图
- 7. 用matplotlib创建的轮廓使用opencv计算轮廓区域
- 8. 轮廓轮廓着色器
- 9. 动画轮廓图
- 10. 轮廓图OpenCV4Android库
- 11. 获取轮廓图像Linkedin在Rails
- 12. python库查找图像轮廓
- 13. 如何从轮廓恢复图像?
- 14. 如何为图像添加轮廓?
- 15. 在图像上搜索轮廓
- 16. 轮廓opencv:如何消除二进制图像中的小轮廓
- 17. 使用CIFilter IOS 5.0获取UIImage图像的轮廓?
- 18. 如何使用JavaCV识别另一轮廓内的轮廓?
- 19. 使用gnuplot剔除matlab轮廓图
- 20. gnuplot的:黑白轮廓图
- 21. python中的轮廓图
- 22. Maple中的轮廓图
- 23. python中的轮廓图
- 24. Xmgrace中的轮廓图
- 25. gnuplot中的4D轮廓图
- 26. 如何使用透明度绘制PNG图像轮廓(边框)
- 27. 使用轮廓和contourf
- 28. 在OpenCV中使用轮廓?
- 29. 如何使图像的不连续轮廓一致?
- 30. WebGL并排图像导致图像轮廓
包括预期输入的一些样本图像。 – mmgp 2012-12-15 20:00:24