• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

干货满满的 Python 实战项目,点赞收藏

  • AI科技大本营
  • 2022年2月08日12时

作者 | 俊欣

来源 | 关于数据分析与可视化

今天小编来给大家介绍3个干货满满的计算机视觉方向的Python实战项目,主要用到的库有
  • opencv-python
  • numpy
  • pillow
要是大家所配置的环境当中没有这几个模块的话,就需要先用pip命令下载安装
pipinstallopencv-pythonnumpypillow

边缘检测

边缘检测的基本思想就是简化图像信息,使用边缘线代表图像所携带信息,而这次我们要用到的则是Canny边缘检测算子,在Opencv当中需要调用的是cv.canny()方法即可,代码如下

importcv2ascv
importmatplotlib.pyplotasplt

img=cv.imread('导入图像的路径',0)
edges=cv.Canny(img,100,200)
plt.subplot(121)
plt.imshow(img,cmap='gray')
.........
plt.show()

output

将照片变成素描风格

我们最终要实现的目的在于将照片变成素描风格,大致的逻辑在于首先需要将图片变成灰色图像然后反转,在反转之后进行模糊化处理,代码如下

importcv2
img=cv2.imread("导入照片的路径")

##将照片灰度化处理
gray_image=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
##将灰度化的照片反转处理
inverted_gray_image=255-gray_image
##将反转的照片模糊化处理
blurred_inverted_gray_image=cv2.GaussianBlur(inverted_gray_image,(19,19),0)
##再一次的进行反转
inverted_blurred_image=255-blurred_inverted_gray_image
###颜色减淡混合处理
sketck=cv2.divide(gray_image,inverted_blurred_image,scale=256.0)

cv2.imshow("OriginalImage",img)
cv2.imshow("PencilSketch",sketck)
cv2.waitKey(0)

output

判断形状

现在我们需要来判断图片当中图形的轮廓,而识别轮廓的算法在opencv模块当中是有内置的,代码如下

importcv2
importnumpyasnp
frommatplotlibimportpyplotasplt

#导入照片
img=cv2.imread('3.png')
#将照片灰度化处理,当然要是您的照片已经是黑白的,就可以跳过这一步
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#settingthresholdofthegrayimage
_,threshold=cv2.threshold(gray,127,255,cv2.THRESH_BINARY)

#识别轮廓的方法
contours,_=cv2.findContours(
threshold,cv2.RETR_TREE,cv2.CHAIN_APPRX_SIMPLE)

i=0
forcontourincontours:
#cv2.approxPloyDP()functiontoapproximatetheshape
approx=cv2.approxPolyDP(contour,0.01*cv2.arcLength(contour,True),True)
#找到图片的中心点
M=cv2.moments(contour)
ifM['m00']!=0.0:
x=int(M['m10']/M['m00'])
y=int(M['m01']/M['m00'])
#将轮廓的名字放在各个图形的中央
iflen(approx)==3:
cv2.putText(img,'Triangle',(x,y),
cv2.FONT_HERSHEY_SIMPLEX,0.6,(0,0,0),2)
eliflen(approx)==4:
.......
eliflen(approx)==5:
......
eliflen(approx)==6:
......
else:
......

#将最后的图形呈现出来
cv2.imshow('shapes',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

output

资讯

谷歌使出禁用2G大招

资讯

大型模型语言能够理解吗?

技术

Python写了一个网页版的P图软件

技术

11款可替代top命令的工具!


分享

点收藏

点点赞

点在看

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM