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

作者 | 俊欣
来源 | 关于数据分析与可视化
Python实战项目,主要用到的库有opencv-python numpy pillow
pip命令下载安装pip?install?opencv-python?numpy?pillow
边缘检测
边缘检测的基本思想就是简化图像信息,使用边缘线代表图像所携带信息,而这次我们要用到的则是Canny边缘检测算子,在Opencv当中需要调用的是cv.canny()方法即可,代码如下
import?cv2?as?cv
import?matplotlib.pyplot?as?plt
img?=?cv.imread('导入图像的路径',0)
edges?=?cv.Canny(img,100,200)
plt.subplot(121)
plt.imshow(img,?cmap='gray')
.........
plt.show()
output

将照片变成素描风格
我们最终要实现的目的在于将照片变成素描风格,大致的逻辑在于首先需要将图片变成灰色图像然后反转,在反转之后进行模糊化处理,代码如下
import?cv2
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("Original?Image",img)
cv2.imshow("Pencil?Sketch",?sketck)
cv2.waitKey(0)
output

判断形状
现在我们需要来判断图片当中图形的轮廓,而识别轮廓的算法在opencv模块当中是有内置的,代码如下
import?cv2
import?numpy?as?np
from?matplotlib?import?pyplot?as?plt
#?导入照片
img?=?cv2.imread('3.png')
#?将照片灰度化处理,当然要是您的照片已经是黑白的,就可以跳过这一步
gray?=?cv2.cvtColor(img,?cv2.COLOR_BGR2GRAY)
#?setting?threshold?of?the?gray?image
_,?threshold?=?cv2.threshold(gray,?127,?255,?cv2.THRESH_BINARY)
#?识别轮廓的方法
contours,?_?=?cv2.findContours(
????threshold,?cv2.RETR_TREE,?cv2.CHAIN_APPROX_SIMPLE)
i?=?0
for?contour?in?contours:
????#?cv2.approxPloyDP()?function?to?approximate?the?shape
????approx?=?cv2.approxPolyDP(contour,?0.01?*?cv2.arcLength(contour,?True),?True)
????#?找到图片的中心点
????M?=?cv2.moments(contour)
????if?M['m00']?!=?0.0:
????????x?=?int(M['m10']?/?M['m00'])
????????y?=?int(M['m01']?/?M['m00'])
????#?将轮廓的名字放在各个图形的中央
????if?len(approx)?==?3:
????????cv2.putText(img,?'Triangle',?(x,?y),
????????????????????cv2.FONT_HERSHEY_SIMPLEX,?0.6,?(0,?0,?0),?2)
????elif?len(approx)?==?4:
????????.......
????elif?len(approx)?==?5:
????????......
????elif?len(approx)?==?6:
????????......
????else:
????????......
#?将最后的图形呈现出来
cv2.imshow('shapes',?img)
cv2.waitKey(0)
cv2.destroyAllWindows()
output



分享

点收藏

点点赞

点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 习近平将发表二〇二六年新年贺词 7904141
- 2 2026年国补政策来了 7808738
- 3 东部战区:开火!开火!全部命中! 7712893
- 4 2026年这些民生政策将惠及百姓 7616985
- 5 小学食堂米线过期2.5小时被罚5万 7519709
- 6 解放军喊话驱离台军 原声曝光 7428214
- 7 为博流量直播踩烈士陵墓?绝不姑息 7327605
- 8 每月最高800元!多地发放养老消费券 7238391
- 9 数字人民币升级 1月1日起将计付利息 7141831
- 10 2026年1月1日起 一批新规将施行 7040675



![林软软呀 不知道你们喜欢哪种西瓜呢?[挤眼] ](https://imgs.knowsafe.com:8087/img/aideep/2022/6/16/78f2b634135befb05241a31aff050cc7.jpg?w=250)




AI100
