用python怎样写个给图片去水印功能
Admin 2022-09-17 群英技术资讯 556 次浏览
这篇文章我们来了解“用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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
集合(set)是一个无序的不重复元素序列。因此在每次运行的时候集合的运行结果的内容都是相同的,但元素的排列顺序却不是固定的,所以本章中部分案例的运行结果会出现与给出结果不同的情况(运行结果不唯一)可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典
Supervisor 是一款 Python 开发的进程管理系统,允许用户监视和控制 Linux 上的进程,能将一个普通命令行进程变为后台守护进程,异常退出时...
什么是共现矩阵?共现矩阵的构建思路共现矩阵的代码实现共现矩阵(共词矩阵)计算共现矩阵(共词矩阵)补充一点python共现矩阵实现。最近在学习python词库的可视化,其中有一个依据共现矩阵制作的可视化,感觉十分炫酷,便以此复刻。...
这篇文章给大家分享的是python常用库的相关内容,python常用库包括有os、configparser、openpyxl、loguru、time、unittest等,那么具体这些库怎样使用呢?下面我们一起来了解看看。
1、捕获摄像头和实时显示importcv2importnumpyasnpimportpickleimportmatplotlib.pyplotaspltcap=cv2.VideoCapture(0)whileTrue:ret,frame=cap.read()#Ouroperationsontheframecomehere
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008