小编给大家分享一下python中如何处理图片去除大块黑色区域,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

在使用MEGAN软件绘制分类学树状图时,如果物种较少,生成的图片会有大片的黑色区域,很不美观。

在使用MEGAN软件绘制分类学树状图时,如果物种较少,生成的图片会有大片的黑色区域,很不美观。那怎样去除呢,请看下面脚本:

脚本运行命令:

python/share/work/wangq/script/work/png_black.py-i/share/nas1/fanyc/project/zx-20171030-47_21_ITS/2/ITS_3/4.Analysis_output/Taxa_summary/MEGAN_tree/Taxonomic_treeUsage:Options:-i<str>分类学树状图png图片所在目录,也是输出目录(目录最后不要带"/")程序检索目录下所有png文件并处理,输出图片会覆盖原来的图片

脚本代码:

importnumpyimportsys,os,argparse,os.path,re,mathfromPILimportImageimportmatplotlib.pyplotasplt##############################################parser=argparse.ArgumentParser(description='Thisscriptisusedtoanerror_bar')parser.add_argument('-i','--in_dir',help='Pleaseinputin_dirdirectorypath',required=True)args=parser.parse_args()pathDir=os.listdir(args.in_dir)forallDirinpathDir:if(re.search(r'png$',allDir)):child=os.path.join('%s/%s'%(args.in_dir,allDir))img=Image.open(child)#Imgur'snamingschemepix=numpy.array(img)#Converttoarrayblack=numpy.array([0,0,0])white=numpy.array([255,255,255])black1=numpy.array([0,0,0,255])white1=numpy.array([255,255,255,255])#printpixprintpix[1,1]pix2=pix.copy()dim=pix.shape#printpix[1,:]==blackif(dim[2]==3):forninxrange(dim[0]):if(pix[n,:]==black).all():pix2[n,:,numpy.newaxis]=whitecontinueif((pix[n,:]==black).sum()>=2.7*dim[1]):x=0forminxrange(dim[1]):if(pix[n,m,:]==black).all():x=x+1if(x>=dim[1]*0.9):pix2[n,:,numpy.newaxis]=white#forninxrange(dim[1]):#if(pix[:,n]==black).all():#pix2[:,n,numpy.newaxis]=whiteif(dim[2]==4):forninxrange(dim[0]):if(pix[n,:]==black1).all():pix2[n,:,numpy.newaxis]=white1continueif((pix[n,:]==black1).sum()>=3.7*dim[1]):x=0forminxrange(dim[1]):if(pix[n,m,:]==black1).all():x=x+1if(x>=dim[1]*0.9):pix2[n,:,numpy.newaxis]=white1#forninxrange(dim[1]):#if(pix[:,n]==black1).all():#pix2[:,n,numpy.newaxis]=white1fig=plt.figure()ax=fig.add_axes([0.0,0.0,1.0,1.0],frameon=False,aspect=1)ax.imshow(pix2)ax.set_xticks([])ax.set_yticks([])plt.savefig(child,dpi=600)plt.close()#.all().all()

以上是“python中如何处理图片去除大块黑色区域”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!