使用Python图像库模块反转图像
我有兴趣学习如何使用 python 图像库模块反转(制作负片)图像。
但是,我无法使用 ImageOps 函数“反转”。我需要另一个解决方案,使用 RGB 值。我已经搜索并尝试过但无济于事。
I'm interested in learning how to invert (make a negative of) an image using the python image libary module.
I cannot however, use the ImageOps function 'invert.' I need another solution, using the RGB values. I've searched and tried to no avail.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
只需用 255(或最大值)减去每个 RGB 值即可获得新的 RGB 值。
这篇文章告诉你如何从图片中获取 RBG 值。
Just subtract each RGB value from 255 (or the max) to obtain the new RGB values.
this post tells you how to get the RBG values from a picture.
一种明显的方法是使用 Image.getpixel 和 Image.putpixel,对于 RGB,每个应该是三个整数的元组。你可以得到(255-r, 255-g, 255-b),然后把它放回去。
或者使用 pix = Image.load(),这看起来更快。
或者,如果您查看 ImageOps.py,它会使用查找表(lut 列表)将图像映射到倒置图像。
或者,如果这不违反您的作业规则,您可以使用 Numpy。然后你可以使用更快的矩阵运算。
One obvious way is to use Image.getpixel and Image.putpixel, for RGB, each should be a tuple of three integers. You can get (255-r, 255-g, 255-b), then put it back.
Or use pix = Image.load(), which seems faster.
Or if you look into ImageOps.py, it's using a lookup table (lut list) to map an image to an inverted one.
Or if it's not against the rules of your assignment, you may use Numpy. Then you can use the faster matrix operation.
如果您正在使用
media
模块,那么您可以执行以下操作:如果您使用
picture
模块,则过程类似,如下所示:希望这会有所帮助
If you are working with the
media
module, then you could do this:The process is similar if you are using the
picture
module, and looks like this:Hope this helps