前几天在Python白银交流群【顾德猫宁】问了一个Python去除水印慢的问题,问题如下:
下面的代码去除水印需要13秒,麻烦大神帮忙看看,
def delete_watermark(path): t = time.time() img = Image.open(path) width, height = img.size for pos in product(range(width), range(height)): rgb = img.getpixel(pos)[:3] if sum(rgb) >= 255 and sum(rgb) < 600: img.putpixel(pos, (0, 0, 0)) # 替换水印,根据背景像素调整 elif sum(rgb) >= 600: # 检测浅白色像素,即水印,根据水印类型调整 img.putpixel(pos, (255, 255, 255)) # 替换水印,根据背景像素调整 img = img.convert('L') print(time.time() - t)
去除水印的原图如下:
去除水印的时间需要13秒,偶尔会2-3秒,不知道为啥很慢,有时候慢到接近30秒。
这里【此类生物】分享了自己的一个经验,倒是觉得正常,13秒不算很慢。
后来【东哥】问了AI,给出的答案如下:
这段Python代码的目的是去除图像中的水印。代码执行效率受到多种因素的影响,以下是一些可能导致执行时间较长的原因:
getpixel
和 putpixel
方法:这两个方法在每次调用时都会进行磁盘I/O操作,因为它们需要从文件中读取或写入像素数据。频繁的I/O操作会显著降低代码的执行效率。img.convert('L')
)。这个操作也需要时间,尤其是对于大型图像。为了提高代码的执行效率,可以考虑以下优化措施:
请注意,去除水印可能涉及版权和法律问题。在使用此类代码时,请确保遵守相关法律法规,并尊重原创内容的版权。
看上去这个原因还是很多的,如果能够跑起来的话,建议如果是自己用的话,还是不要先去追求性能了,如果是公司需要,可以跟老板提需求,换个好一些的电脑。
顺利地解决了粉丝的问题。
如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!
大家好,我是Python进阶者。这篇文章主要盘点了一个Python去除水印慢的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
本文链接:http://www.28at.com/showinfo-26-82026-0.html去除水印需要13秒,不知道为啥很慢,有时候慢到接近30秒
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com