python抠图,grabcut算法
发布时间:2020-12-20 12:44:14 所属栏目:Python 来源:网络整理
导读:一、不同颜色下用python实现抠图 # opencv模块 import cv2 import numpy as np # Step1. 加载图像 img = cv2.imread(‘D:untitledaaimg.png‘) # Step2. 创建掩模、背景图和前景图 # mask返回一堆0,1,2,3的数组,shape[:2]形状切分宽和高,zeros创
一、不同颜色下用python实现抠图 # Step5. mask中,值为2和0的统一转化为0,1和3转化为1 from PIL import Imagei = 1j = 1imgPath = r"D:untitledaatest.png"#.jpeg";# faZhi = 70#绿色#imgPath = "/Users/guoanguan/Desktop/kouTu/beiKou.jpeg"#faZhi = 5#白色img = Image.open(imgPath)#读取系统的内照片img = img.convert(‘RGBA‘)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值 #抠掉白色# targetColor = [245,245,247]##targetColor = [49,166,64]# if isEqualNumbers( data[0],targetColor[0]) and isEqualNumbers( data[1],targetColor[1]) and isEqualNumbers( data[2],targetColor[2]):# img.putpixel((i,j),(0,0))#抠掉绿色 if data[0] < data[1] and data[2] < data[1] and data[1] > 100: img.putpixel((i,0))# if (data[0]>=170 and data[1]>=170 and data[2]>=170):#RGBA的r值大于170,并且g值大于170,并且b值大于170# img.putpixel((i,(234,53,57,255))#则这些像素点的颜色改成大红色#img = img.convert("RGB")#把图片强制转成RGBprint(data)print(img.putpixel)img.save("resul.png")#保存修改像素点后的图片 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |