值得收藏,分享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
技術交流
歡迎轉載、收藏、有所收獲點贊支持一下!
目前開通了技術交流群,群友已超過2000人,添加時最好的備注方式為:來源+興趣方向,方便找到志同道合的朋友
- 方式①、發送如下圖片至微信,長按識別,后臺回復:加群;
- 方式②、添加微信號:dkl88191,備注:來自CSDN
- 方式③、微信搜索公眾號:Python學習與數據挖掘,后臺回復:加群
總結
以上是生活随笔為你收集整理的值得收藏,分享3个的 Python 实战项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 中用PPA安装软件
- 下一篇: python项目实例-实例分享 | 4个