Limage發布第一個版本的共享庫啦!
親們,Limage自誕生以來,終於發布了第一個版本的共享庫啦!哈哈哈……
第一個版本的名稱是Limage.so.1.0,包含CDIP類。共享庫和頭文件我已經上傳到了百度網盤,鏈接: https://pan.baidu.com/s/1nwnZXcH密碼: pd9f。
今天,小編就來給親們展示一下Limage的使用效果。先請親們瀏覽一下CDIP.h文件:
CDIP類中運用了部分OpenCV中的函數。在Linux系統下安裝OpenCV的方法親們可以參見小編的上一篇文章《如何在Ubuntu17.10下安裝OpenCV3.4.0》。現CDIP類中共有9個變數,21個函數。分別介紹如下:
(1).變數:
imgH:圖像的高度,以像素為單位。
imgW:圖像的寬度,以像素為單位。
actW:圖像的實際寬度,以像素為單位。和imgW不一樣,actW是4的倍數,這一點在生成灰度圖的時候會很有用。
imgDepth:圖像像素的位深度。支持IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U, IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F和IPL_DEPTH_64F。
imgChannel:圖像的通道數。大多數支持1、2、3或者4通道。
imgSize:圖像的數據大小,以位元組為單位。
imgWidthStep:圖像一行的數據大小,以位元組為單位,是4的倍數。
puc_imgData:指向圖像的像素數據。
pImg_src:IplImage結構體指針。
以一幅imgW為250,imgDepth為8,imgChannel為3的圖像為例。其actW是250+2=252,4的倍數。imgWidthStep是250*3+2=752,也是4的倍數。如果imgChannel為1,那麼actW=imgWidthStep=252。
(2).函數:
CDIP():構造函數。
~CDIP():析構函數。
ReadImage(...):讀取指定路徑下的圖像。
ShowImage():默認顯示CDIP類對象的圖像。
ShowImage(...):顯示指定矩陣的圖像,並可以輸入圖像窗口名稱。效果如下圖所示:
GetRGBImage(...):獲取圖像的RGB分量。
GetGrayImage(...):獲取圖像的灰度圖。效果如下圖所示:
SaveImage(...):將指定的矩陣保存成圖像,並可以輸入保存的路徑。
WriteTxt(...):將指定的矩陣列印成txt文件,並可以輸入列印的路徑。這是一個靜態的函數模板。可以列印int,char和uchar三種數據類型的矩陣。定義成靜態函數是為了在以後的擴展中,可以直接使用類名調用該函數。
FlipMat(...):將指定的矩陣,四周翻轉指定的行數或者列數。同WriteTxt(...)一樣,也是靜態的函數模板。
EdgeDete_Sobel(...):利用Sobel運算元對圖像進行邊緣檢測。效果如下圖所示:
EdgeDete_Laplace(...):利用Laplace運算元對圖像進行邊緣檢測。因為Laplace運算元是二階微分運算元,建議使用之前先用高斯濾波函數GausBlur(...)對圖像進行濾波,可以有效降低圖像中的雜訊。效果如下圖所示:
EdgeDete_Canny(...):利用Canny演算法對圖像進行邊緣檢測。效果如下圖所示:
GausBlur(...):對圖像進行高斯濾波。效果如下圖所示:
CalConv(...):計算圖像的卷積。當權值矩陣都是正數的時候,可以使用這個函數。
Histeq(...):對圖像進行直方圖均衡化。效果如下圖所示:
MeanFilter(...):對圖像進行均值濾波。效果如下圖所示:
InteImg(...):計算圖像的積分圖,是一個靜態函數。
BilinearInte(...):對圖像進行雙線性插值。效果如下圖所示:
親們可以注意一下圖像進行雙線性插值前後的h和w,都擴大了2倍。
Stretch(...):對圖像進行拉伸。效果如下圖所示:
Rotate(...):對圖像進行旋轉。效果如下圖所示:
Limage在GitHub上的鏈接:https://github.com/geekmlby/Limage。歡迎大家指點,您的批評,是我前進的燈塔。
TAG:Limage開發心得 |