用python怎样写个给图片去水印功能
Admin 2022-09-17 群英技术资讯 295 次浏览
这篇文章我们来了解“用python怎样写个给图片去水印功能”的内容,小编通过实际的案例向大家展示了操作过程,简单易懂,有需要的朋友可以参考了解看看,那么接下来就跟随小编的思路来往下学习吧,希望对大家学习或工作能有帮助。
在做视频或者图片处理的时候,我们经常会遇到存在水印的情况,或者我们需要去除图片的某一个部分,这时候我们就需要想办法去除不需要的这一部分。下面这个工具能够控制鼠标将图片上的任意部分改变颜色,从而达到去除水印的效果,这里我们默认修改为白色。
1、CV2库
2、PIL库
import cv2 # 导入相关库 from PIL import Image global img global point1, point2 def on_mouse(event, x, y, flags, param): global img, point1, point2 img2 = img.copy() if event == cv2.EVENT_LBUTTONDOWN: # 左键点击 point1 = (x, y) cv2.circle(img2, point1, 10, (255, 255, 255), 2) cv2.imshow('image', img2) elif event == cv2.EVENT_MOUSEMOVE and (flags & cv2.EVENT_FLAG_LBUTTON): # 按住左键拖曳 cv2.rectangle(img2, point1, (x, y), (255, 255, 255), 2) cv2.imshow('image', img2) elif event == cv2.EVENT_LBUTTONUP: # 左键释放 point2 = (x, y) cv2.rectangle(img2, point1, point2, (255, 255, 255), 2) cv2.imshow('image', img2) min_x = min(point1[0], point2[0]) min_y = min(point1[1], point2[1]) width = abs(point1[0] - point2[0]) height = abs(point1[1] - point2[1]) cut_img = img[min_y:min_y + height, min_x:min_x + width] cv2.imwrite('first.png',cut_img)
将裁剪出来的图片变为白色
def test2(): i = 1 j = 1 img = Image.open("first.png") # 读取系统的内照片 print(img.size) # 打印图片大小 print(img.getpixel((4, 4))) width = img.size[0] # 长度 height = img.size[1] # 宽度 for i in range(0, width): # 遍历所有长度的点 for j in range(0, height): # 遍历所有宽度的点 data = (img.getpixel((i, j))) # 打印该图片的所有点 print(data) # 打印每个像素点的颜色RGBA的值(r,g,b,alpha) print(data[0]) # 打印RGBA的r值 if (data[0] != 255 and data[1] != 255 and data[2] != 255): # RGBA的r值大于170,并且g值大于170,并且b值大于170 img.putpixel((i, j), (255, 255, 255, 255)) # 则这些像素点的颜色改成大红色 img = img.convert("RGB") # 把图片强制转成RGB img.save("mid.png") def testMain(): img = Image.open('/home/gtwang/1000000.png') img2 = Image.open('mid.png') layer = Image.new('RGBA', img.size, (255, 255, 255, 0)) layer.paste(img2, (point1)) img_after = Image.composite(layer, img, layer) img_after.show() img_after.save('output.png') def main(): global img img = cv2.imread('input.png') cv2.namedWindow('image') cv2.setMouseCallback('image', on_mouse) cv2.imshow('image', img) cv2.waitKey(0) if __name__ == '__main__': main() test2() testMain()
关于“用python怎样写个给图片去水印功能”的内容今天就到这,感谢各位的阅读,大家可以动手实际看看,对大家加深理解更有帮助哦。如果想了解更多相关内容的文章,关注我们,群英网络小编每天都会为大家更新不同的知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家详细介绍了Python实现FIFO(先进先出)缓存置换算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Python开发一套校园管理系统,包含各种人员,如教师、学生等。学校的系统通常还包括一些课程的信息,大家可以在过程中查缺补漏,提升水平
你想复制一个对象?因为在Python中,无论你把对象做为参数传递,做为函数返回值,都是引用传递的。何谓引用传递,我们来看一个C++交换两个
这篇文章主要介绍了对pytorch中不定长序列补齐的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要为大家介绍了python神经网络facenet人脸检测及keras实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008