日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

分享3个干货满满的Python实战项目,点赞收藏

發布時間:2024/9/15 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享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实战项目,点赞收藏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。