python图像去背景留人

阅读: 评论:0

python图像去背景留人

python图像去背景留人

用Python去除背景,得到有效的图像

此目的是为了放入深度学习计算中来减少计算量,同时突出特征,原图像为下图,命名为1.jpg,在此去除白色背景,黑色背景同理

需要对原图像进行的处理是去掉白色背景,抠出有效的参与计算的图形的大小即下图

对此有两个思路:

用掩模法得到有效部分,其次去掉空白,但太繁琐喽,并且一万多张图片,其不弄到天荒地老(截图也是哦)

对图像进行处理,即先做numpy变化,后反变换,将255-原图像,此时得到的图像就是

在此计算图像的横轴相加为0,纵轴相加为0,删去和为0的列和行得到的numpy矩阵,用255减去numpy矩阵得到的图像就是所求有效图像。(在此我没能实现三通道的图像,只能做出灰度图的图像)程序如下:

from PIL import Image

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import scipy.misc

img = Image.open('1.jpg')

e,g=img.size

img1&#vert('L')

img1=np.array(img1, dtype='float32')

arr=255-img1

arr1 = arr.sum(axis=0)#每一列求和

arr2 = arr.sum(axis=1)#每一行求和

df=pd.DataFrame(arr)#把像素点转化为dataframe

df.insert(lumns),lumns),arr2)#最后一列插入每一行的和

df1&#at([df,(pd.DataFrame(df.sum()).T)])#最后一行插入每一列的和

df2=df1[df1[e]>0]#根据最后一列把大于0的行筛选出来

#根据最后一行,把等于0的列删除掉

for c lumns:

if df2[c].sum() == 0 :

df2.drop(columns = [c],inplace = True)

df2.drop(columns=[e],inplace = True)#删除最后一列

df3 = df2.head((df2.shape[0])-1)#删除最后一行

a=255-df3

#df3.values#dataframe转化为numpy

plt.imshow(a)

image(df3.values).save('C:/Users/Administrator.SKY-20180518VHY/Desktop/2.jpg')#保存图像

最终得到的图像为

标签:Python,去除,df2,df,图像,import,numpy,columns

本文发布于:2024-02-01 22:22:22,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170679734139809.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   背景   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23