1. 程式人生 > 程式設計 >基於python影象處理API的使用示例

基於python影象處理API的使用示例

1.影象處理庫

import cv2 as cv
from PIL import *

常用的影象處理技術有影象讀取,寫入,繪圖,影象色彩空間轉換,影象幾何變換,影象形態學,影象梯度,影象邊緣檢測,影象輪廓,影象分割,影象去噪,影象加水印以及修復水印等

2.opencv常用的介面

cv.imread()
  讀取圖片,返回numpy
cv.imwrite()  
  寫入圖片
cv.cvtColor()  
  影象色彩空間轉換
cv.add()
cv.subtract()
cv.multiply()
cv.divide()
cv.applyColorMap()
  減少了運算量,改變圖片風格,突出圖片特徵
cv.bitwise_and(引數1,引數2)
  邏輯與
cv.bitwise_xor(引數1,引數2)
  邏輯異或
cv.bitwise_or(引數1,引數2)
  邏輯或
cv.bitwise_not(引數)
  影象值取反操作
cv.split(src)  
  通道分離
cv.merge(mv)
  通道合併
cv2.inRange(hsv,lower,upper)  
  提取指定色彩範圍區域inRange
cv.meanStdDev()  
  均值和標準差
cv.minMaxLoc()
  最大最小值和相應的位置
cv.normalize()
  畫素歸一化
cv.VideoCapture()
  視訊檔案
cv.flip(src,flipcode,dst)
  影象翻轉
cv.rectangle()  
  矩形
cv.circle()
  圓
cv.ellipse()
  橢圓
cv.calcHist()
  影象直方圖
cv.equalizeHist()
  影象直方圖均衡化可以用於影象增強、對輸入影象進行直方圖均衡化處理,提升後續物件檢測的準確率
cv.compareHist()
  影象直方圖比較,就是計算兩幅影象的直方圖資料,比較兩組資料的相似性,從而得到兩幅影象之間的相似程度
cv.calcBackProject()
  影象直方圖反向投影是通過構建指定模板影象的二維直方圖空間與目標的二維直方圖空間,進行直方圖資料歸一化之後, 進行比率操作,對所有得到非零數值,生成查詢表對原影象進行畫素對映之後,再進行影象模糊輸出的結果
cv.blur()
  均值影象模糊卷積
cv.GaussianBlur()
  高斯模糊
均值模糊 是卷積核的係數完全一致,高斯模糊考慮了中心畫素距離的影響,對距離中心畫素使用高斯分佈公式生成不同的權重係數給卷積核,然後用此卷積核完成影象卷積得到輸出結果就是影象高斯模糊之後的輸出
cv.medianBlur()
  中值濾波對影象特定噪聲型別(椒鹽噪聲)會取得比較好的去噪效果,也是常見的影象去噪聲與增強的方法之一
cv.fastNlMeansDenoisingColored()
  非區域性均值濾波
cv.bilateralFilter()
  高斯雙邊模糊,卷積處理實現影象模糊的同時對影象邊緣不會造成破壞,濾波之後的輸出完整的儲存了影象整體邊緣(輪廓)資訊
cv.pyrMeanShiftFiltering()
  均值遷移模糊,均值遷移模糊是影象邊緣保留濾波演算法中一種,經常用來在對影象進行分水嶺分割之前去噪聲,可以大幅度提升分水嶺分割的效果
cv.integral()
  影象積分圖演算法
cv.edgePreservingFilter()
  快速的影象邊緣濾波演算法
cv.filter2D()
  自定義卷積核來自定義的濾波器
cv.Sobel()
  影象梯度提取運算元,梯度資訊是影象的最原始特徵資料,進一步處理之後就可以生成一些比較高階的特徵用來表示一張影象實現基於影象特徵的匹配,影象分類等應用
cv.Laplacian()
  拉普拉斯運算元更容易受到噪聲的擾動,所以經常對要處理的影象首先進行一個高斯模糊,然後再進行拉普拉斯運算元的邊緣提取,而且在一些場景中會把這兩步合併成為一步,就是我們經常聽說的LOG運算元
cv.convertScaleAbs()
  增強對比度
cv.addWeighted()
  USM銳化增強演算法
cv.Canny()
  Canny編邊緣檢測器,有效的噪聲抑制,完整邊緣提取能力
cv.pyrUp()
cv.pyrDown()
  影象金字塔
cv.matchTemplate()
  影象模板匹配
cv.threshold()
  二值化
cv.adaptiveThreshold()
  自適應閾值演算法
cv.connectedComponents()
  二值影象聯通元件尋找
cv.connectedComponentsWithStats()
  二值影象連通元件狀態統計
cv.findContours()
  獲取二值影象的輪廓拓撲資訊
cv.drawContours()
  繪製輪廓
cv.boundingRect()
cv.minAreaRect()
  求取輪廓外接矩形
cv.contourArea()
  輪廓點集計算面積
cv.arcLength()
  計算輪廓曲線的弧長
cv.approxPolyDP()
  影象二值影象的每個輪廓,可以使用輪廓逼近,逼近每個輪廓的真實幾何形狀,從而通過輪廓逼近的輸出結果判斷一個物件是什麼形狀
cv.fitEllipse()
  輪廓點進行擬合,生成一個擬合的圓形或者橢圓
cv.fitLine()
  直線擬合
cv.dilate()
  膨脹可以看成是最大值濾波,即用最大值替換中心畫素點
cv.erode()
  腐蝕可以看出是最小值濾波,即用最小值替換中心畫素點
cv.getStructuringElement()
  獲取結構元素
cv.morphologyEx()
  形態學的操作
  開操作可以刪除二值影象中小的干擾塊,降低影象二值化之後噪點過多的問題
  操作可以填充二值影象中孔洞區域,形成完整的閉合區域連通元件
  頂帽操作有時候對於我們提取影象中微小部分特別有用
cv.inpaint()
  影象修復
cv.findHomography()
cv.warpPerspective()
  透視變換
cv.kmeans()
  KMeans資料分類
cv.QRCodeDetector()
cv.QRCodeDetector.detectAndDecode()
  二維碼檢測與識別

3.PIL庫介面

Image.fromarray()
  將numpy影象轉Image
ImageFont.truetype("china.ttf",size=30)
  載入影象字型庫
ImageDraw.Draw()
  繪圖
draw.text()
  影象上新增水印

到此這篇關於基於python影象處理API的使用示例的文章就介紹到這了,更多相關python 影象處理API內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!