亲们,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。欢迎大家指点,您的批评,是我前进的灯塔。
领取专属 10元无门槛券
私享最新 技术干货