基于python圖像處理API的使用示例
1.圖像處理庫
import cv2 as cvfrom PIL import *
常用的圖像處理技術(shù)有圖像讀取,寫入,繪圖,圖像色彩空間轉(zhuǎn)換,圖像幾何變換,圖像形態(tài)學(xué),圖像梯度,圖像邊緣檢測,圖像輪廓,圖像分割,圖像去噪,圖像加水印以及修復(fù)水印等
2.opencv常用的接口
cv.imread() 讀取圖片,返回numpycv.imwrite() 寫入圖片cv.cvtColor() 圖像色彩空間轉(zhuǎn)換cv.add()cv.subtract()cv.multiply()cv.divide()cv.applyColorMap() 減少了運(yùn)算量,改變圖片風(fēng)格,突出圖片特征cv.bitwise_and(參數(shù)1, 參數(shù)2) 邏輯與cv.bitwise_xor(參數(shù)1, 參數(shù)2) 邏輯異或cv.bitwise_or(參數(shù)1, 參數(shù)2) 邏輯或cv.bitwise_not(參數(shù)) 圖像值取反操作cv.split(src) 通道分離cv.merge(mv) 通道合并cv2.inRange(hsv, lower, upper) 提取指定色彩范圍區(qū)域inRangecv.meanStdDev() 均值和標(biāo)準(zhǔn)差cv.minMaxLoc() 最大最小值和相應(yīng)的位置cv.normalize() 像素歸一化cv.VideoCapture() 視頻文件cv.flip(src,flipcode,dst) 圖像翻轉(zhuǎn)cv.rectangle() 矩形cv.circle() 圓cv.ellipse() 橢圓cv.calcHist() 圖像直方圖cv.equalizeHist() 圖像直方圖均衡化可以用于圖像增強(qiáng)、對輸入圖像進(jìn)行直方圖均衡化處理,提升后續(xù)對象檢測的準(zhǔn)確率cv.compareHist() 圖像直方圖比較,就是計算兩幅圖像的直方圖數(shù)據(jù),比較兩組數(shù)據(jù)的相似性,從而得到兩幅圖像之間的相似程度cv.calcBackProject() 圖像直方圖反向投影是通過構(gòu)建指定模板圖像的二維直方圖空間與目標(biāo)的二維直方圖空間,進(jìn)行直方圖數(shù)據(jù)歸一化之后, 進(jìn)行比率操作,對所有得到非零數(shù)值,生成查找表對原圖像進(jìn)行像素映射之后,再進(jìn)行圖像模糊輸出的結(jié)果cv.blur() 均值圖像模糊卷積cv.GaussianBlur() 高斯模糊均值模糊 是卷積核的系數(shù)完全一致,高斯模糊考慮了中心像素距離的影響,對距離中心像素使用高斯分布公式生成不同的權(quán)重系數(shù)給卷積核,然后用此卷積核完成圖像卷積得到輸出結(jié)果就是圖像高斯模糊之后的輸出cv.medianBlur() 中值濾波對圖像特定噪聲類型(椒鹽噪聲)會取得比較好的去噪效果,也是常見的圖像去噪聲與增強(qiáng)的方法之一cv.fastNlMeansDenoisingColored() 非局部均值濾波cv.bilateralFilter() 高斯雙邊模糊,卷積處理實現(xiàn)圖像模糊的同時對圖像邊緣不會造成破壞,濾波之后的輸出完整的保存了圖像整體邊緣(輪廓)信息cv.pyrMeanShiftFiltering() 均值遷移模糊,均值遷移模糊是圖像邊緣保留濾波算法中一種,經(jīng)常用來在對圖像進(jìn)行分水嶺分割之前去噪聲,可以大幅度提升分水嶺分割的效果cv.integral() 圖像積分圖算法cv.edgePreservingFilter() 快速的圖像邊緣濾波算法cv.filter2D() 自定義卷積核來自定義的濾波器cv.Sobel() 圖像梯度提取算子,梯度信息是圖像的最原始特征數(shù)據(jù),進(jìn)一步處理之后就可以生成一些比較高級的特征用來表示一張圖像實現(xiàn)基于圖像特征的匹配,圖像分類等應(yīng)用cv.Laplacian() 拉普拉斯算子更容易受到噪聲的擾動,所以經(jīng)常對要處理的圖像首先進(jìn)行一個高斯模糊,然后再進(jìn)行拉普拉斯算子的邊緣提取,而且在一些場景中會把這兩步合并成為一步,就是我們經(jīng)常聽說的LOG算子cv.convertScaleAbs() 增強(qiáng)對比度cv.addWeighted() USM銳化增強(qiáng)算法cv.Canny() Canny編邊緣檢測器,有效的噪聲抑制,完整邊緣提取能力cv.pyrUp()cv.pyrDown() 圖像金字塔cv.matchTemplate() 圖像模板匹配cv.threshold() 二值化cv.adaptiveThreshold() 自適應(yīng)閾值算法cv.connectedComponents() 二值圖像聯(lián)通組件尋找cv.connectedComponentsWithStats() 二值圖像連通組件狀態(tài)統(tǒng)計cv.findContours() 獲取二值圖像的輪廓拓?fù)湫畔v.drawContours() 繪制輪廓cv.boundingRect()cv.minAreaRect() 求取輪廓外接矩形cv.contourArea() 輪廓點集計算面積cv.arcLength() 計算輪廓曲線的弧長cv.approxPolyDP() 圖像二值圖像的每個輪廓,可以使用輪廓逼近,逼近每個輪廓的真實幾何形狀,從而通過輪廓逼近的輸出結(jié)果判斷一個對象是什么形狀cv.fitEllipse() 輪廓點進(jìn)行擬合,生成一個擬合的圓形或者橢圓cv.fitLine() 直線擬合cv.dilate() 膨脹可以看成是最大值濾波,即用最大值替換中心像素點cv.erode() 腐蝕可以看出是最小值濾波,即用最小值替換中心像素點cv.getStructuringElement() 獲取結(jié)構(gòu)元素cv.morphologyEx() 形態(tài)學(xué)的操作 開操作可以刪除二值圖像中小的干擾塊,降低圖像二值化之后噪點過多的問題 操作可以填充二值圖像中孔洞區(qū)域,形成完整的閉合區(qū)域連通組件 頂帽操作有時候?qū)τ谖覀兲崛D像中微小部分特別有用cv.inpaint() 圖像修復(fù)cv.findHomography()cv.warpPerspective() 透視變換cv.kmeans() KMeans數(shù)據(jù)分類cv.QRCodeDetector()cv.QRCodeDetector.detectAndDecode() 二維碼檢測與識別
3.PIL庫接口
Image.fromarray() 將numpy圖像轉(zhuǎn)ImageImageFont.truetype('china.ttf', size=30) 加載圖像字體庫ImageDraw.Draw() 繪圖draw.text() 圖像上添加水印
到此這篇關(guān)于基于python圖像處理API的使用示例的文章就介紹到這了,更多相關(guān)python 圖像處理API內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
