python 证件照换底图,证件照p图换底色
本文只是一个实现思路。当然,PS很好用。希望你能学到更多的知识,所以我分享了这篇文章。更多精彩,请关注微信官方账号:【数据分析统计之美】,回复关键词:【自动化文档】!可以得到97的python自动化Office PDF,博主自己写的!
1.图片来源本图片来自百度图片。如侵权,请联系我删除!图片仅用于知识交流。
2.读图显示imread():读图;Imshow():显示图片;Waitkey():设置窗口等待,如果不等待,窗口会闪而过;import v2 import numpy as NP # Read photo img=cv2 . im Read( girl . jpg )# Show image cv2 . im Show( img ,img)#窗口等待的命令,0表示无限等待cv2.waitKey(0)。效果如下:
3.Image scaling resize():图像缩放,其中fx和fy表示缩放比例,0.5表示缩放到之前的一半。import v2 import numpy as NP # read photos img=cv2 . imread( girl . jpg )# image zoom img=cv2 . resize(img,none,FX=0.5,fy=0.5) rows,cols,channels=img.shapeprint (rows,Col,channels) #命令显示图像cv2.imshow(img ,img)# window waiting,0表示无限等待cv2.waitKey(0)。结果如下:
4.把一张图片转换成灰度图像三色图片有三个RGB颜色通道,所以不能腐蚀和扩展。这就需要我们将彩色图片转换成hsv灰度图像,然后完成腐蚀和膨胀的操作。
2.CVTColor (IMG,CV2.color _ BGR2hsv)可以将彩色图片转换成hsv灰度图片。import v2 import numpy as NP # read photos img=cv2 . imread( girl . jpg )# image zoom img=cv2 . resize(img,none,FX=0.5,fy=0.5) rows,cols,channels=img.shapeprint (rows,Col,channels) cv2.imshow (img ,img)# image conversion to binary image HSV=cv2 . CVT color(img,cv2.color _ bgr2hsv) #命令显示图像cv2 . im2
5.将图片二值化就是将图片转换成黑白图片。二值化类似于1代表男性,2代表女性。对于图像处理,我们还需要定义一个最小值和一个最大值,分别用lower_blue和upper_blue表示。
Lower _ blue=np.array ([90,70,70]) upper _ blue=np.array ([110,255,255]) inrange (HSV,Lower _ blue,upper _ blue)将图片二值化。import v2 import numpy as NP # read photos img=cv2 . im read( girl . jpg )# image zoom img=cv2 . resize(img,none,FX=0.5,fy=0.5) rows,cols,channels=img.shapeprint (rows,Col,channels) cv2.imshow (img ,img) #图像转换为灰度HSV=cv2.cvtcolor (img,cv2 . color _ bgr 2 HSV)cv2 . im show( HSV
缺点:我们观察了第三章的图片,发现有些噪点(白点)有时会出现在黑色区域。这里可能显示的并不明显,有的图很明显,需要我们腐蚀或者膨胀。
6.形象的腐蚀和膨胀。对上面的图像进行二值化后,会出现一些噪点。我们可以用腐蚀或者膨胀来处理图像,看看哪种处理效果更好。
腐蚀(掩膜,无,迭代次数=1)进行腐蚀操作。对于扩展操作,expansion(侵蚀,无,迭代次数=1)。import v2 import numpy as NP # read photos img=CV2 . im read( girl . jpg )# image zoom img=CV2 . resize(img,none,FX=0.5,fy=0.5) rows,cols,channels=img.shapeprint (rows,Col,channels) cv2.imshow (img ,img) #图像转换为灰度HSV=cv2.cvtcolor (img,CV2 . color _ bgr 2 HSV)CV2 . im show( HSV Dilate (erode,none,iterations=1)cv2 . im show( Dilate ,Dilate) #命令用于窗口等待,0表示无限期等待cv2.waitKey(0)。结果如下:
观察上图:对于这张图片,无论是腐蚀还是膨胀,都起到了很好的去除图片噪点的作用。我们也可以用腐蚀图或者展开图。
7.遍历每个像素进行颜色替换。图片是由每一个像素组成的。我们只是想找到腐蚀后图片白色背景处的像素,然后用红色替换原图中相应位置的像素。
import v2 import numpy as NP # read photos img=cv2 . im read( girl . jpg )# image zoom img=cv2 . resize(img,none,FX=0.5,fy=0.5) rows,cols,channels=img.shapeprint (rows,Col,channels) cv2.imshow (img ,img) #图像转换为灰度HSV=cv2.cvtcolor (img,cv2 . color _ bgr 2 HSV)cv2 . im show( HSV upper _ blue) #腐蚀扩展erode=cv2.erode (mask,none,iterations=1)cv2 . imshow Erode)dilate=cv2 . dilate(Erode,none,iterations=1)cv2 . imshow( dilate ,dilate) #遍历替换I in range(rows):for J in range(cols):if Erode[I,J]==255: # 255像素表示白色,所以我们只想把白色的像素替换为红色img[i,j]=(0,0,255) #这里
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。