3段Python圖像處理的實用代碼的分享
前言
今天給大家分析3個計算機視覺方向的Python
實用代碼,主要用到的庫有:
- opencv-python
- numpy
- pillow
要是大家所配置的環(huán)境當中沒有這幾個模塊的話,可先用pip
命令下載安裝:
pip?install?opencv-python?numpy?pillow
邊緣檢測
邊緣檢測的基本思想就是簡化圖像信息,使用邊緣線代表圖像所攜帶信息,而這次我們要用到的則是Canny
邊緣檢測算子,在Opencv
當中需要調(diào)用的是cv.canny()
方法即可,代碼如下:
import?cv2?as?cv import?matplotlib.pyplot?as?plt img?=?cv.imread('導(dǎo)入圖像的路徑',0) edges?=?cv.Canny(img,100,200) plt.subplot(121) plt.imshow(img,?cmap='gray') ......... plt.show()
output:
將照片變成素描風(fēng)格
我們最終要實現(xiàn)的目的在于將照片變成素描風(fēng)格,大致的邏輯在于首先需要將圖片變成灰色圖像然后反轉(zhuǎn),在反轉(zhuǎn)之后進行模糊化處理,代碼如下:
import?cv2 img?=?cv2.imread("導(dǎo)入照片的路徑") ##?將照片灰度化處理 gray_image?=?cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ##?將灰度化的照片反轉(zhuǎn)處理 inverted_gray_image?=?255-gray_image ##?將反轉(zhuǎn)的照片模糊化處理 blurred_inverted_gray_image?=?cv2.GaussianBlur(inverted_gray_image,?(19,19),0) ##?再一次的進行反轉(zhuǎn) 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:
判斷形狀
現(xiàn)在我們需要來判斷圖片當中圖形的輪廓,而識別輪廓的算法在opencv
模塊當中是有內(nèi)置的,代碼如下:
import?cv2 import?numpy?as?np from?matplotlib?import?pyplot?as?plt #?導(dǎo)入照片 img?=?cv2.imread('3.png') #?將照片灰度化處理,當然要是您的照片已經(jīng)是黑白的,就可以跳過這一步 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: ????????...... #?將最后的圖形呈現(xiàn)出來 cv2.imshow('shapes',?img) cv2.waitKey(0) cv2.destroyAllWindows()
output:
是不是簡單又實用?
到此這篇關(guān)于3段Python圖像處理的實用代碼的分享的文章就介紹到這了,更多相關(guān)Python圖像處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows 平臺做 Python 開發(fā)的最佳組合(推薦)
在 Windows 上如何做 Python 開發(fā)呢?相信大神們都會有自己的解決方案,但本文希望介紹微軟官方發(fā)布的 Terminal 和 Visual Studio Code,希望它們能構(gòu)建更流暢的 Windows 開發(fā)體驗,感興趣的朋友跟隨小編一起看看吧2020-07-07python編程開發(fā)之textwrap文本樣式處理技巧
這篇文章主要介紹了python編程開發(fā)之textwrap文本樣式處理技巧,實例分析了Python中textwrap的常用方法與處理文本樣式的相關(guān)使用技巧,需要的朋友可以參考下2015-11-11Python利用sched模塊實現(xiàn)定時任務(wù)
今天我們來介紹一下Python當中的定時任務(wù),主要用到的模塊是sched,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-04-04Python編寫一個驗證碼圖片數(shù)據(jù)標注GUI程序附源碼
這篇文章主要介紹了Python編寫一個驗證碼圖片數(shù)據(jù)標注GUI程序,本文給大家附上小編精心整理的源碼,需要的朋友可以參考下2019-12-12Window系統(tǒng)下Python如何安裝OpenCV庫
這篇文章主要介紹了Window系統(tǒng)下Python如何安裝OpenCV庫,本文分步驟給大家介紹的詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03