分享3个干货满满的Python实战项目,点赞收藏
生活随笔
收集整理的這篇文章主要介紹了
分享3个干货满满的Python实战项目,点赞收藏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天小編來給大家介紹3個干貨滿滿的計算機視覺方向的Python實戰項目,主要用到的庫有
opencv-python
numpy
pillow
要是大家所配置的環境當中沒有這幾個模塊的話,就需要先用pip命令下載安裝
pip?install?opencv-python?numpy?pillow邊緣檢測
邊緣檢測的基本思想就是簡化圖像信息,使用邊緣線代表圖像所攜帶信息,而這次我們要用到的則是Canny邊緣檢測算子,在Opencv當中需要調用的是cv.canny()方法即可,代碼如下
import?cv2?as?cv import?matplotlib.pyplot?as?pltimg?=?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?shapeapprox?=?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
各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)推薦閱讀
牛逼!Python常用數據類型的基本操作(長文系列第①篇)
牛逼!Python的判斷、循環和各種表達式(長文系列第②篇)
牛逼!Python函數和文件操作(長文系列第③篇)
牛逼!Python錯誤、異常和模塊(長文系列第④篇)
總結
以上是生活随笔為你收集整理的分享3个干货满满的Python实战项目,点赞收藏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 奇淫技巧!
- 下一篇: websocket python爬虫_p