基于python圖像處理API的使用示例
1.圖像處理庫
import cv2 as cvfrom PIL import *
常用的圖像處理技術有圖像讀取,寫入,繪圖,圖像色彩空間轉換,圖像幾何變換,圖像形態學,圖像梯度,圖像邊緣檢測,圖像輪廓,圖像分割,圖像去噪,圖像加水印以及修復水印等
2.opencv常用的接口
cv.imread() 讀取圖片,返回numpycv.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) 提取指定色彩范圍區域inRangecv.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圖像轉ImageImageFont.truetype('china.ttf', size=30) 加載圖像字體庫ImageDraw.Draw() 繪圖draw.text() 圖像上添加水印
到此這篇關于基于python圖像處理API的使用示例的文章就介紹到這了,更多相關python 圖像處理API內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
